gpt4 book ai didi

c++ - cmake 链接到共享库而不使用完整路径

转载 作者:IT王子 更新时间:2023-10-29 01:22:22 25 4
gpt4 key购买 nike

我有以下 CMakeLists.txt:

set( PROJECT_LINK_LIBS lib1.so lib2.so )
link_directories( path/to/libs ) # lib1.so and lib2.so are there.

add_library( ${PROJECT_NAME} SHARED ${PROJECT_SOURCES} )
target_link_libraries( ${PROJECT_NAME} ${PROJECT_LINK_LIBS} )

编译和链接都很好。

但是当我这样做的时候:

ldd -d mylib.so

我得到:

  1. libc.so.6 =>/lib/i386-linux-gnu/libc.so.6 (0xf529b000)
  2. linux-gate.so.1 => (0xf777a000)
  3. /lib/ld-linux.so.2 (0xf777b000)
  4. lib1.so =>/path/to/libs/lib1.so (0xf56a2000)
  5. lib2.so =>/path/to/libs/lib2.so (0xf548f000)

我的问题是:

  • 如何删除 4. 和 5. 的/path/to/libs/? 与 LD_LIBRARY_PATH 有关吗?
  • 自动回答: 我明白是什么意思 1. 在该路径中搜索 libc.so.6。但是 2. 和 3. 呢? locate linux-gate.so.1 什么也没给出。为什么 3. 没有 => 符号? (找到答案 here )

最佳答案

确定找到答案:

set( CMAKE_SKIP_BUILD_RPATH true )

做到了。

关于c++ - cmake 链接到共享库而不使用完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958967/

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