[英]How to use LD_LIBRARY_PATH in CMakeLists?
在我的工作站上,我必須加載模塊以增加LD_LIBRARY_PATH
環境變量( module load arpack
)。 似乎cmake只能使用$ENV{LD_LIBRARY_PATH}
來訪問此變量。 但是,當打印此變量時,我得到了一個由:
分隔的目錄列表,並且我相信cmake不能將其理解為用於查找庫的目錄列表,因此,以下操作無效:
find_library (Arpack_LIBRARY libarpack.a PATH $ENV{LD_LIBRARY_PATH})
和
message(STATUS $ENV{LD_LIBRARY_PATH})
版畫
/home/user:/home/user/lib:/usr/lib:/lib
這就是我想找到我的圖書館的方式。 如何將$ENV{LD_LIBRARY_PATH}
轉換為可利用的目錄列表?
在CMake中,列表只是一個用分號分隔的部分組成的字符串。 要使用冒號 分隔的 字符串要用分號分隔 ,請使用string(REPLACE)命令:
string(REPLACE ":" ";" LIBRARY_DIRS $ENV{LD_LIBRARY_PATH})
結果變量可以在find_library
調用中使用:
find_library (Arpack_LIBRARY libarpack.a PATHS ${LIBRARY_DIRS})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.