有没有办法编译 C++在一个进程中使用 Clang 的多个文件?

发布于 2024-11-23 15:28:59 字数 269 浏览 1 评论 0原文

出于基准测试的原因,我需要使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏雨凉 2024-11-30 15:28:59

查看 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 with clang -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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文