根据Clang文档:
-I <目录>
将指定目录添加到包含文件的搜索路径。
如果有一种方法可以通过一个-I命令在同一目录中添加多个搜索路径,我就很伤脑筋,
-I"Dir1/SubDir/SubDir/SubDir/{IncludePath1,IncludePath2,IncludePath3}"
(不幸的是)我的项目文件夹树的形式是,有2个用于包含路径的主文件夹,每个文件夹都包含-I选项的许多路径。这会导致clang命令很长,我将举一个例子:
clang (...)
-I"Dir1/SubDir/SubDir/.../SubDir/IncludePath1"
-I"Dir1/SubDir/SubDir/.../SubDir/IncludePath2"
-I"Dir1/SubDir/SubDir/.../SubDir/IncludePath3"
-I"Dir1/SubDir/SubDir/.../SubDir/(And so on...)"
-I"Dir2/SubDir/SubDir/.../SubDir/IncludePath1"
-I"Dir2/SubDir/SubDir/.../SubDir/IncludePath2"
-I"Dir2/SubDir/SubDir/.../SubDir/IncludePath3"
-I"Dir2/SubDir/SubDir/.../SubDir/(And so on...)"
所以我再次想知道是否有一种方法告诉clang使用一个命令的多个搜索路径进行搜索,或者使它在特定目录下进行搜索
答案 0 :(得分:0)
使用选项-isysroot
和-iwithsysroot
:
clang -isysroot"Dir1/SubDir/SubDir/SubDir/" -iwithsysroot"/IncludePath1/" \
-iwithsysroot"/IncludePath2/" -iwithsysroot"/IncludePath3/"
不幸的是,该解决方案仅适用于一个主文件夹,并且还使那些包含 system 文件夹,即Clang不会对其显示任何警告。
另外,-iwithsysroot
相当长,因此您可能在这里没有太多输入内容了:)
但是我不知道直接通过Clang选项执行此操作的更好方法。
尽管您总是可以编写Shell脚本来简化工作...
注意。在深入研究Clang command line reference来寻找更好的解决方案时,我发现option -ivfsoverlay
似乎可以解决您的问题。
虽然我无法使其工作,但我仍然决定将其留在此处,也许对您有用。