编译出一个动态库.libXXXEngine.so。然后直接在另一个工程中,把头文件include进来,并link到该库:-lXXXEngine. 尝试编译,出错: .//libXXXEngine.so:undefined reference to`CHttpParser::GetCurrentHttpMethod(http_method_t&)' .//libGenaEngine.so: undefined reference to `CHttpParser::CHttpParser(std::b...
Link的时候,符号查找是从左到右的,你把test.o放到库的左边应该就可以了。 g++ test.o -L/usr/local/lib -llog4cplus -o test有用 回复 黑纱烛龙: 太感谢了, 的确成功,哈哈 回复2016-12-28 黑纱烛龙: 但是这个要怎么采纳答案呢 回复2016-12-28 Hacken: 我也不知道,哈哈! 回复2016-12-28 查看...
对于动态链接库,实际的符号定位是在运行期进行的.在编译.so的时候,如果没有把它需要的库和他一起进行联编,比如libx.so 需要使用uldict, 但是忘记在编译libx.so的时候加上-luldict的话,在编译libx.so的时候不会报错,因为这个时候libx.so被认为是一个库,它里面存在一些不知道具体实现的符号是合法的,是可以在...
gcc和g++编译结果的混用需要保证能够extern "C" 两边都可以使用的接口,在我们的64位环境中gcc链接g++的库还需要加上 -lstdc++。 经排查,我们在makefile中通过-lXXEngine正确链接了libXXXEngine.so,同时,我们也把相应的头文件放到我当前工程目录下了。然而,被告知且出错的函数都是在动态库中的。好奇怪! 为了进一步...
但是我生成可执行程序的时候提示 undefined reference to `getBlackListXml' 。命令是 gcc main.c A.h -L -lmyxml -lmxml -lpthread -o main,这个函数在动态库里面查是有内存地址信息的啊,为什么还是有问题? 回复2017-11-14 后端开发工程实践: 你的main.c中有使用线程函数?为什么要链接pthread这个库?你要...
对于动态链接库,实际的符号定位是在运行期进行的.在编译.so的时候,如果没有把它需要的库和他一起进行联编,比如libx.so 需要使用uldict, 但是忘记在编译libx.so的时候加上-luldict的话,在编译libx.so的时候不会报错,因为这个时候libx.so被认为是一个库,它里面存在一些不知道具体实现的符号是合法的,是可以在...
编译完link的时候,报了一句undefined reference’dlclose@xxx函数‘,找主程过来看了下,说是dl库没有包进去,查了下dl库是用来做动态库加载的(dynamic load),项目用到了libmysqld.so,加了之后还是有问题,将-ldl链接选项改到最后才可以。 比较常见的undefined reference问题: 1.dl库 undefined reference to ‘dlerror...
reference’dlclose@xxx函数‘,不知道什么问题了,找主程过来看了下,说是dl库没有包进去,查了下dl库是用来做动态库加载的(dynamic load),项目用到了libmysqld.so,加了之后还是有问题,将-ldl链接选项改到最后才可以。 总结了下这些比较常见的undefined reference问题: ...
linux下查看动态链接库依赖关系的命令 x86:ldd *.so arm:arm-linux-readelf -d *.so 实际例子:以项目中用到的库librtsp.so分析:lijun@ubuntu:~/workspace$ arm-hisiv100nptl-linux-ld -d librtsp.
linuxld命令链接问题 `ld`命令是Linux系统中的链接器,在编译源代码生成可执行文件时起到连接各个目标文件的作用。对于`ld`命令的链接问题,可以根据以下几个方面进行解答: 1. 静态链接和动态链接:`ld`命令可以进行静态链接和动态链接。静态链接是将所有的目标文件和库文件都复制到可执行文件中,执行时不需要依赖外部...