添加许多 -isystem include 指令会显着减慢编译过程吗?
Does adding many -isystem include directives slow down the compilation process significantly?
对于我们的软件项目,我们有大约 15 个第三方库依赖项。我们使用 -isystem include 指令抑制这些第三方库中的警告。
我们的软件项目包含 10 多个可执行文件和库,每个都依赖于第三方库的一个子集。我们在 mac.
上用 clang 编译
为我们的构建系统中的所有项目禁用所有第三方警告的一种简单方法是使用 -isystem 在所有项目中包含所有第三方库。
另一种方法是为我们的每个项目单独定义 -isystem 指令。这样设置比较麻烦,会炸掉所有工程文件的配置,但只包含实际使用的第三方库。
我更愿意选择第一个选项,因为它的工作量不大,但我不确定这是否会显着减慢编译过程?
此标志只会减慢标准 header 的搜索速度,因为在找到每个标准 header 之前,它也会在您的目录中进行搜索。因此,这取决于您添加了多少个此类目录以及您使用了多少个标准 header。对于每个标准 header,影响的总和为:
time ls YOUR_DIR >> /dev/null 2>&1
对于您添加的每个目录。
对于我们的软件项目,我们有大约 15 个第三方库依赖项。我们使用 -isystem include 指令抑制这些第三方库中的警告。
我们的软件项目包含 10 多个可执行文件和库,每个都依赖于第三方库的一个子集。我们在 mac.
上用 clang 编译为我们的构建系统中的所有项目禁用所有第三方警告的一种简单方法是使用 -isystem 在所有项目中包含所有第三方库。
另一种方法是为我们的每个项目单独定义 -isystem 指令。这样设置比较麻烦,会炸掉所有工程文件的配置,但只包含实际使用的第三方库。
我更愿意选择第一个选项,因为它的工作量不大,但我不确定这是否会显着减慢编译过程?
此标志只会减慢标准 header 的搜索速度,因为在找到每个标准 header 之前,它也会在您的目录中进行搜索。因此,这取决于您添加了多少个此类目录以及您使用了多少个标准 header。对于每个标准 header,影响的总和为:
time ls YOUR_DIR >> /dev/null 2>&1
对于您添加的每个目录。