CheckCSourceCompiles¶
檢查 C 原始碼是否可以編譯。
- check_c_source_compiles¶
check_c_source_compiles(<code> <resultVar> [FAIL_REGEX <regex1> [<regex2>...]])
檢查
<code>
中提供的原始碼是否可以編譯。結果會儲存在由<resultVar>
指定的內部快取變數中,成功時為布林值true
,失敗時為布林值false
。如果提供了
FAIL_REGEX
,則會檢查編譯器輸出中是否有任何內容符合指定的正規表示式來判斷失敗。在內部,會使用
try_compile()
編譯原始碼。如果CMAKE_TRY_COMPILE_TARGET_TYPE
設定為EXECUTABLE
(預設值),則原始碼會被編譯並連結為可執行程式。如果設定為STATIC_LIBRARY
,則原始碼會被編譯但不連結。無論如何,所有函式都必須照常宣告。另請參閱
check_source_compiles()
以取得更通用的命令語法。另請參閱
check_source_runs()
以執行已編譯的原始碼。編譯和連結命令可以透過在呼叫
check_c_source_compiles()
之前設定下列任何變數來影響:
CMAKE_REQUIRED_FLAGS
要傳遞給編譯器的額外旗標字串。該字串必須以空格分隔,;-list 不會起作用。
CMAKE_<LANG>_FLAGS
及其相關的特定配置變數的內容會自動新增到編譯器命令中,然後才是CMAKE_REQUIRED_FLAGS
的內容。
CMAKE_REQUIRED_DEFINITIONS
一個 ;-list 形式為
-DFOO
或-DFOO=bar
的編譯器定義。也會自動加入由<resultVar>
指定名稱的定義。
CMAKE_REQUIRED_INCLUDES
要傳遞給編譯器的標頭搜尋路徑 ;-list。這些將是唯一使用的標頭搜尋路徑,
INCLUDE_DIRECTORIES
目錄屬性的內容將會被忽略。
CMAKE_REQUIRED_LINK_OPTIONS
在版本 3.14 中新增。
要新增至連結命令的選項 ;-list (有關詳細資訊,請參閱
try_compile()
)。
CMAKE_REQUIRED_LIBRARIES
要新增至連結命令的程式庫 ;-list。這些可以是系統程式庫的名稱,也可以是匯入的目標 (有關詳細資訊,請參閱
try_compile()
)。
CMAKE_REQUIRED_LINK_DIRECTORIES
在版本 3.31 中新增。
要傳遞給連結器的程式庫搜尋路徑 ;-list (有關詳細資訊,請參閱
try_compile()
)。
CMAKE_REQUIRED_QUIET
在版本 3.1 中新增。
如果此變數的值為布林值 true,則會隱藏與檢查相關的所有狀態訊息。