有没有办法编译 C++在一个进程中使用 Clang 的多个文件?
出于基准测试的原因,我需要使用 Clang (clang++) 编译器仅使用一个进程来编译多个 C++ 文件。
事实上,默认情况下,编译器使用多个进程来编译文件,这使得我的基准测试无法按我想要的方式工作。
我知道这是一个不常见的问题,但这只是针对特殊情况,一般来说,我不需要这样。
编辑:它打破了我的基准,因为我使用 CallGrind 生成执行的调用图,然后我有几个调用图,一个是一个进程的
编辑2:据我所知,clang++ 正在为每个文件分叉到 clang
For benchmarking reason, I need to use the Clang (clang++) compiler to compile several C++ files using only one process.
Indeed, by default, the compiler use several process to compile the files and that makes my benchmark to not works the way I want.
I know this is a uncommon question, but this is only for a special case, in general, I don't need that.
Edit : It is breaking my benchmark, because I generate a call graph of the execution using CallGrind and then I've several call graphs, one by process
Edit 2 : From what I understand, clang++ is forking to clang for every file
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看
clang++ file1.cc -c -###
的结果(加上您需要的任何标志)。您应该能够将其他输入文件填充到以clang -cc1
开头的命令中,并让它们全部编译而无需任何分叉。这种操作模式并不真正受支持,但据我所知它是有效的。Take a look at the result of
clang++ file1.cc -c -###
(plus whatever flags you need). You should be able to stuff additional input files into the command starting withclang -cc1
, and have them all compile without any forking. This mode of operation isn't really supported, but it works as far as I know.