使用icc -static问题进行编译

时间:2010-12-20 20:44:49

标签: c++ linux icc

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

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

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

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

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

注意:我正在使用ICC版本11.1 20100806在64位Linux上进行编译

谢谢,

帕特里克

1 个答案:

答案 0 :(得分:5)

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