在gcc
和clang
中,可以使用-I
或-isystem
將include目錄傳遞給編譯器。當尖括號<>
在#include
指令被使用,而不是引號""
boost build:如何將包含標記爲「系統」包括
不同的是,isystem
路徑僅搜索。此外,某些警告出現在系統標題中時會被抑制(因爲您大概無法解決系統標題中的問題)。 (據我所知,可能還有其他的細微差別。)
並非所有的編譯器都支持這個概念,它是一個實現問題,而不是標準的一部分。
cmake
特別支持此功能,並將在支持它的編譯器上「做正確的事情」。
scons
歷史上不支持它,但有辦法解決這個問題,它也有some support內置,因爲最近。
在boost.build
又名bjam
,b2
是否有等效功能?在文檔和示例中,include目錄使用<include>path/to/files
指定,並作爲lib
或exe
目標的要求傳遞。但我沒有找到任何<system_include>
或類似的功能。
如果它不存在,有什麼辦法可以解決它嗎?除非正確使用這些標誌,否則某些項目不會在gcc
和clang
上生成警告。