【发布时间】:2019-09-17 01:10:00
【问题描述】:
official docs 说明如何通过-cc1 接口使用预编译的头文件,就像这样生成它们:
$ clang -cc1 test.h -emit-pch -o test.h.pch
并使用它们:
$ clang -cc1 -include-pch test.h.pch test.c -o test.s
问题在于-cc1 接口太低级,无法由 CLI 中的开发人员使用。事实上,常规高级接口最终调用低级-cc1 接口,方法是为其提供正确操作所需的大量参数,例如适合编译时系统的包含路径。没有这些参数,-cc1 接口就没有工作的希望:
$ clang++ -cc1 /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h -emit-pch -o std.pch
/usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:33:10: fatal error: 'cassert' file not found
#include <cassert>
^~~~~~~~~
1 error generated.
有没有办法从高级界面使用预编译的头文件,以便开发人员可以在日常工作中方便地利用此功能?
【问题讨论】:
标签: c++ build clang precompile