当前位置: 技术问答>linux和unix
gcc连接共享库的问题
来源: 互联网 发布时间:2015-03-13
本文导语: 我有一个静态库A.a,有一个动态库B.so,B.so链接了A.a,都是用g++编译的。用c编译一个测试程序调用B.so,编译时说 undefined reference to FindL1 而FindL1函数是在A.a中定义,为什么会有这样的错误?请高手指教!谢谢 ...
我有一个静态库A.a,有一个动态库B.so,B.so链接了A.a,都是用g++编译的。用c编译一个测试程序调用B.so,编译时说 undefined reference to FindL1
而FindL1函数是在A.a中定义,为什么会有这样的错误?请高手指教!谢谢
而FindL1函数是在A.a中定义,为什么会有这样的错误?请高手指教!谢谢
|
你的程序中有没有直接使用 A.a里的函数,如果是这样,还需要包括A.a的头文件.
如果全部被B.so封装了,应该没有这个问题才对.
如果全部被B.so封装了,应该没有这个问题才对.
|
#ifdef __cplusplus
extern "C" 函数名称
#endif
g++编译动态库的时候需要作如上声明,告诉编译器以C的方式编译代码
然后在gcc中引用就可以了!
如果还有问题,在gcc引用的时候也如此声明一下
extern "C" 函数名称
#endif
g++编译动态库的时候需要作如上声明,告诉编译器以C的方式编译代码
然后在gcc中引用就可以了!
如果还有问题,在gcc引用的时候也如此声明一下