4

我一直在使用 ICC 编译我为研究编写的程序(没有什么令人印象深刻的只是很多浮点计算),我可以使用以下方法编译它:

 g++ -O3 mixingModel.cpp configFile.cpp -o mixingModel  

或者

 icc -O3 -ipo -static mixingModel.cpp configFile.cpp -o mixingModel

但是,只要我添加 -static 编译器就会挂起。当我想使用 -fast 并且编译器只是坐在那里永远编译时,这个问题首先出现了。正在运行的进程称为 mcpcom,它占用了我 99% 的 cpu(因此它是一个线程)并且几乎没有任何内存。我已经让它在那里坐了 30 多分钟(通常没有 -fast 的编译时间不到一分钟)。

然后我继续用 C++ 编写了一个小的 hello world 程序,并尝试使用 -fast 标志编译它,它再次显示相同的 MO。坐在那里,使用了 99% 的 cpu,并且调用的进程是 mcpcom。

注意:我在 ICC 版本 11.1 20100806 的 64 位 Linux 上编译

谢谢,

帕特里克

4

1 回答 1

6

这可能是由于 icc 的程序间优化。它考虑所有目标文件,在进行静态链接时可能会很多。所以我建议放弃-ipo。显然,这是一个老问题

于 2010-12-20T21:09:38.633 回答