如何用c语言调用c++做成的动态链接库

 我来答
翎2980493052
2017-10-26 · TA获得超过549个赞
知道小有建树答主
回答量:754
采纳率:100%
帮助的人:451万
展开全部

因为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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式