当前位置: 技术问答>linux和unix
动态库调用symbol lookup error: /a.so: undefined symbol: sFun()
来源: 互联网 发布时间:2016-09-18
本文导语: 大家好,我在linux下用c编写了一个动态库a.so(相应的头文件是a.h),这个动态库用到了b.so和c.a我使用eclipse将b.so和c.a都加入到工程中编译得出a.so。然后我在main.c中调用a.so中的函数sFun(),(已经将a.h以及b.so, c.a都考...
大家好,我在linux下用c编写了一个动态库a.so(相应的头文件是a.h),这个动态库用到了b.so和c.a我使用eclipse将b.so和c.a都加入到工程中编译得出a.so。然后我在main.c中调用a.so中的函数sFun(),(已经将a.h以及b.so, c.a都考到了main的工程目录下),使用gcc main.c ./a.so ./b.so ./c.a -o Test
编译没有问题,但是一运行就会报错symbol lookup error: /a.so: undefined symbol: sFun()
请大家帮忙定位,是那里出了问题,谢谢啦~~
编译没有问题,但是一运行就会报错symbol lookup error: /a.so: undefined symbol: sFun()
请大家帮忙定位,是那里出了问题,谢谢啦~~
|
你是使用c和c++混合编程吧,如果是,需要在头文件中声明extern "C",告诉编译器,将c代码按照c++的方式进行编译。
|
搜索
LD_LIBRARY_PATH
LD_LIBRARY_PATH
|
最近 在看 《深入理解计算机系统》中的链接部分,楼主也可以找出这章看看,会很有收获的。