:cmake的鏈接共享庫,而無需使用我有以下的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
我得到:
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf529b000)
linux-gate.so.1 => (0xf777a000)
/lib/ld-linux.so.2 (0xf777b000)
lib1.so => /path/to/libs/lib1.so (0xf56a2000)
lib2.so => /path/to/libs/lib2.so (0xf548f000)
我的問題是:
- 如何刪除/路徑/到/庫/供4和5?與LD_LIBRARY_PATH有關嗎?
- 自動回答:我得到了什麼意思1.在該路徑中搜索libc.so.6。但是2和3呢?
locate linux-gate.so.1
什麼都不給。爲什麼3.沒有=>符號? (發現答案0)
問題是如何刪除硬編碼/路徑/到/ libs /並離開只有lib1.so/lib2.so才能使用LD_LIBRARY_PATH進行搜索。看看我的答案,解決它。現在,如何用CMake複製圖書館? – Borzh
@Borzh我只是覺得你所看到的並不是真正的問題。你仍然是對的。你的回答將從一開始就刪除rpath條目。如果你想使用CMake複製你的庫,使用''FILE COPY''或''INSTALL''。 – ToniBig