簡體   English   中英

如何在CMakeLists中使用LD_LIBRARY_PATH?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM