如何用c语言调用c++做成的动态链接库
展开全部
因为c++的各种复杂机制,生成的凳败埋动态链接库中的符号名是不符合C的机制的,直接链接会失败,一般解决c和c++的链接问题是在c++的代码上进行处理的,只要将你的cpp文件中的函数定义都加上extern "c"前缀,就可以编译成C可链接的库。如果你只有cpp的库文件,没有源码文件的话,没法处理。
// a.cpp
extern "C" int cpp_func() { return 0; }
// b.c
#include <stdio.h>枣蚂
int cpp_func();
int main() {
printf("%d\n", cpp_func());
return 0;
}
// ***compile and link***
// g++ a.cpp -o a.o
// gcc b.c -o b.o
// g++ a.o b.o -o a.out &&枯兄 ./a.out
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询