Компиляция с ICC-статической проблемой

Я использую ICC для компиляции программы, которую я написал для своих исследований (ничего впечатляющего, только много вычислений с плавающей запятой), и я могу скомпилировать это просто, используя:

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

или же

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

Однако, как только я добавлю -static, компилятор просто зависнет. Эта проблема впервые возникла, когда я захотел использовать -fast, и компилятор просто сидел и компилировался вечно. Процесс, который выполняется, называется mcpcom, и он занимает 99% моего процессора (то есть одного потока) и почти не занимает памяти. Я оставил его там более 30 минут назад (обычное время компиляции без -fast составляет менее одной минуты).

Затем я написал небольшую программу hello world на C++ и попытался скомпилировать ее с флагом -fast, и она снова показала тот же самый MO. Сел там с 99% использованным процессором и процесс называется mcpcom.

Примечание: я компилирую на 64-битной Linux с ICC версии 11.1 20100806

Спасибо,

Патрик

1 ответ

Решение

Вероятно, это связано с межпроцедурной оптимизацией ICC. Он учитывает все объектные файлы, которых может быть много при выполнении статических ссылок. Поэтому я рекомендую бросить -ipo, Видимо, это старая проблема.

Другие вопросы по тегам