加载外部共享库时g ++链接问题

时间:2014-11-24 11:32:23

标签: c++ gcc

我正在编译我自己的.so库,它使用其他(外部).so库。我创建了自己的CMakeLists.txt。对于外部库,我使用提供的CMakeList.txt并将其添加到我的CMakeLists.txt(add_subdirectory)中的项目中。我被连接困住了。我的图书馆无法加载外部模块。

它说

未定义的符号:_Z13SomeFunctionhhhiiiPchhddhhhS_h

当我检查外部.so模块中的符号时我找到了

_Z13SomeFunctionbbbiiiPcbbddbbbS_b

因此,符号以.so模式显示,但名称不匹配。

任何帮助?

1 个答案:

答案 0 :(得分:-1)

我认为编译器找不到.so模块。 您可能必须使用这些标志-L和-l进行编译。 如果您的lib名为libmy.so,则必须使用:g++ *.c -L path/to/libmy/ -lmy

修改

外部lib.so路径必须在LD_PRELOAD环境变量中,然后检查它。