1. 程式人生 > >CMakeLists.txt 中設定編譯後的可執行程式優先呼叫本地庫

CMakeLists.txt 中設定編譯後的可執行程式優先呼叫本地庫

可執行程式查詢不到so庫

庫放在可執行程式目錄下的lib資料夾下,但是可執行程式沒有去呼叫,使用ldd指令

 修改ld.so.conf也是無效

是否是CMakeLists.txt設定的問題?

有事找度娘。。。

 設定可執行程式優先呼叫本地庫

SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_SKIP_BUILD_RPATH TRUE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH ".")
SET(CMAKE_LIBRARY_PATH ".")

 若想將搜尋路徑修改為可執行程式所在目錄的lib資料夾,則可這樣修改

SET(CMAKE_INSTALL_RPATH "./lib")
SET(CMAKE_LIBRARY_PATH "./lib")

重新編譯後,使用ldd重新檢視目前正常

親測可用