gpt4 book ai didi

linux - 使用 cmake 编译后,执行时未找到库

转载 作者:行者123 更新时间:2023-12-03 10:00:17 30 4
gpt4 key购买 nike

我在我的项目中使用 cmake。

CMakeLists.txt 代码为:

set( GS7_INCLUDE_DIRS "${EXTERNAL_PATH}/ds_sdk/SDK_GS7.0/include" CACHE PATH "SDK GS7.0 include directory" )
set( GS7_LIBRARIES "${EXTERNAL_PATH}/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49/libdsDriverGCC49.so" "${EXTERNAL_PATH}/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49/libdsUtilGCC49.so" CACHE FILEPATH "SDK GS7.0 libdsDriver full path" )
...
add_executable( FxLibLoader ... )
...
target_link_libraries( FxLibLoader
"${GS7_LIBRARIES}"
...
)

当我执行 cmake --build 时,最终的链接命令是

c++ -g CMakeFiles/FxLibLoader.dir/FxLibLoader.cpp.o CMakeFiles/FxLibLoader.dir/FxLogger.cpp.o CMakeFiles/FxLibLoader.dir/mtoProto.pb.cc.o CMakeFiles/FxLibLoader.dir/Stats.cpp.o -o FxLibLoader -L/mnt/e/Desarrollo/sandbox_MTO/externalLibs/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49 -Wl,-rpath,/mnt/e/Desarrollo/PYMX_II/Mto/MtoApi/debug:/mnt/e/Desarrollo/sandbox_MTO/externalLibs/protobuf/protobuf-3.10.1/linux/lib/x64:/mnt/e/Desarrollo/sandbox_MTO/externalLibs/Hazelcast/linux/lib/x64:/mnt/e/Desarrollo/sandbox_MTO/externalLibs/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49 /mnt/e/Desarrollo/PYMX_II/Mto/MtoApi/debug/libMtoApi_d.so /mnt/e/Desarrollo/sandbox_MTO/externalLibs/protobuf/protobuf-3.10.1/linux/lib/x64/libprotobuf.so /usr/lib/x86_64-linux-gnu/libpython2.7.so -ldl /mnt/e/Desarrollo/sandbox_MTO/externalLibs/Hazelcast/linux/lib/x64/libHazelcastClient3.12_64.so -ldsDriverGCC49 -ldsUtilGCC49 -lstdc++fs

链接选项好的地方。编译和链接完成时没有错误,但是当我这样做时

>ldd FxLibLoader | fgrep found

libdsUtilGCC49.so => not found

但是,libdsDriverGCC49.so 库,与丢失的目录位于同一目录中......找到了!

另外,如果我这样做

LD_LIBRARY_PATH='/mnt/e/Desarrollo/sandbox_MTO/externalLibs/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49' ldd FxLibLoader | fgrep found

我得到空结果,所有库都位于!

  • 我做错了什么?
  • 我该如何解决?

最佳答案

What am I doing wrong?

您希望链接器在 /mnt/e/Desarrollo/sandbox_MTO/externalLibs/ds_sdk/SDK_GS7.0/lib/linux/x64/gcc49 目录中搜索库,而链接器不会.

How do I solve it ?

指示链接器在该目录中搜索库,或将库复制到链接器已搜索的目录之一。有关详细信息,请参见 man ld。您可能想对 -rpath 感兴趣。

关于linux - 使用 cmake 编译后,执行时未找到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64332034/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com