我正在编译我自己的.so库,它使用其他(外部).so库。我创建了自己的CMakeLists.txt。对于外部库,我使用提供的CMakeList.txt并将其添加到我的CMakeLists.txt(add_subdirectory)中的项目中。我被连接困住了。我的图书馆无法加载外部模块。
它说
未定义的符号:_Z13SomeFunctionhhhiiiPchhddhhhS_h
当我检查外部.so模块中的符号时我找到了
_Z13SomeFunctionbbbiiiPcbbddbbbS_b
因此,符号以.so模式显示,但名称不匹配。
任何帮助?
答案 0 :(得分:-1)
我认为编译器找不到.so模块。
您可能必须使用这些标志-L和-l进行编译。
如果您的lib名为libmy.so,则必须使用:g++ *.c -L path/to/libmy/ -lmy
修改强>
外部lib.so路径必须在LD_PRELOAD环境变量中,然后检查它。