2016-11-24 102 views
0

gccclang中,可以使用-I-isystem將include目錄傳遞給編譯器。當尖括號<>#include指令被使用,而不是引號""boost build:如何將包含標記爲「系統」包括

不同的是,isystem路徑僅搜索。此外,某些警告出現在系統標題中時會被抑制(因爲您大概無法解決系統標題中的問題)。 (據我所知,可能還有其他的細微差別。)

並非所有的編譯器都支持這個概念,它是一個實現問題,而不是標準的一部分。

cmake特別支持此功能,並將在支持它的編譯器上「做正確的事情」。

scons歷史上不支持它,但有辦法解決這個問題,它也有some support內置,因爲最近。

boost.build又名bjamb2是否有等效功能?在文檔和示例中,include目錄使用<include>path/to/files指定,並作爲libexe目標的要求傳遞。但我沒有找到任何<system_include>或類似的功能。

如果它不存在,有什麼辦法可以解決它嗎?除非正確使用這些標誌,否則某些項目不會在gccclang上生成警告。

回答

1

不,boost.build中沒有這樣的功能。你可以做的是有條件地啓用-isystem對於支持系統包括的特定工具集,例如:

exe myexe : mysrc.cpp : <toolset>gcc:<cxxflags>-isystem/path/to/include/files ;