include - clang 在同一目录中包含多个搜索路径
问题描述
根据 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用一个命令搜索多个搜索路径,或者让它在特定目录中搜索
解决方案
使用选项-isysroot
和-iwithsysroot
:
clang -isysroot"Dir1/SubDir/SubDir/SubDir/" -iwithsysroot"/IncludePath1/" \
-iwithsysroot"/IncludePath2/" -iwithsysroot"/IncludePath3/"
不幸的是,此解决方案仅适用于一个主文件夹,并且它还使那些包含文件夹成为系统文件夹,即 Clang 不会为它们显示任何警告。此外,-iwithsysroot
它很长,所以你可能不会在那里节省太多打字:) 但我不知道有什么更好的方法可以直接通过 Clang 选项来做到这一点。虽然你总是可以编写一个 shell 脚本来简化工作......
笔记。在挖掘Clang 命令行参考以寻找更好的解决方案时,我遇到了似乎可以解决您的问题的选项。-ivfsoverlay
不过,我无法让它工作,但我还是决定把它留在这里,也许它对你有用。
推荐阅读
- shell - 我需要在 shell 中用换行符替换文字 \n
- git - 我将如何 git 合并两个具有原始祖先但分歧的相同项目?
- c# - 仍然没有得到如何从 BackgroundWorker 返回值
- html - 我在 bootstrap 列中遇到 img 缩放问题
- node.js - 猫鼬删除错误的文件
- java - 遍历 HashMap 并将值放入 List
- javascript - 异步减少
- python-3.x - 如何在使用 boto3 创建 api-gateway 时添加命令“使用 Lambda 代理集成”
- java - 在测试中调用 SDOHelper.createRootDataObject 时的 NPE
- spring - 从之前的步骤获取xml配置spring批处理中的jobExecutionContext