g++ -c -Wall -Werror -shared -fpic lib.cpp -o libhoge.so
gcc main.c -L$(pwd) -lhoge -lstdc++
#include "lib.h" | |
#include "lib_c.h" | |
#include <iostream> | |
void A::print() { | |
std::cout << "Hello lib World" << std::endl; | |
} | |
A *create_a() { | |
return new A(); | |
} | |
void print(A *a) { | |
a->print(); | |
} |
#pragma once | |
class A { | |
public: | |
enum ER { | |
OK = 0, | |
NG, | |
}; | |
void print(); | |
}; |
#pragma once | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
struct A; | |
struct A *create_a(); | |
void print(struct A *a); | |
#ifdef __cplusplus | |
}; | |
#endif |
#include "lib_c.h" | |
int main(int argc, char **argv) { | |
struct A *hoge = create_a(); | |
print(hoge); | |
return 0; | |
} |