使用 CMake 3.23,我試圖獲取add_library()為 Windows 中的目標生成的檔案的名稱。
add_library(talib source.cpp source.h)
它生成以下檔案:
talib.dll
talib.lib
talib.pdb
有沒有辦法獲取上述檔案的名稱?$<TARGET_FILE:talib>只給我talib.dll,我怎樣才能得到其余的檔案名,它適用于 Linux 庫嗎?提前致謝。
uj5u.com熱心網友回復:
有以下生成器運算式。這主要是在此處參考檔案:
https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html
$<TARGET_FILE:tgt>tgt--二進制檔案的完整路徑。對于共享庫,這是所有平臺上的動態物件檔案。$<TARGET_LINKER_FILE:tgt>-- 鏈接到tgt目標時使用的檔案。這通常與 相同$<TARGET_FILE:tgt>,但對于 DLL 平臺上的共享庫,它將是.lib與 DLL 關聯的匯入庫。$<TARGET_PDB_FILE:tgt>-- 聯結器生成的程式資料庫檔案 (.pdb) 的完整路徑,其中 tgt 是目標的名稱。
所有這些都決議為絕對路徑。前兩個適用于所有系統(但可能相互重復)。TARGET_PDB_FILE is not supported by the target linker.最后一個僅適用于 PDB 系統,并且會引發在其他系統上讀取的致命錯誤。
要檢測您是否在 PDB 系統上,您可以檢查變數CMAKE_<LANG>_LINKER_SUPPORTS_PDB、 where <LANG>is C、CXX等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/531752.html
標籤:linux视窗制作共享库
上一篇:如何將包含路由器運行配置的文本檔案與實時運行配置進行比較?蟒蛇,Linux
下一篇:用sed替換一些textr
