【问题标题】:clang include multiple search path in the same directoryclang 在同一目录中包含多个搜索路径
【发布时间】:2019-02-22 10:32:29
【问题描述】:

根据 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 使用一个命令搜索多个搜索路径,或者让它在特定目录中搜​​索

【问题讨论】:

    标签: include clang include-path


    【解决方案1】:

    使用选项-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,它似乎可以解决您的问题。 不过,我无法让它工作,但我还是决定把它留在这里,也许它会对你有用。

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多