./configure make make install в Windows с помощью icc

Недавно я вернулся к Windows7 (x64) из-за проблем с производительностью моей видеокарты в Linux, но мне не хватает возможности легко компилировать программное обеспечение с открытым исходным кодом в Windows. У меня есть копия компилятора intel c, который несколько лучше, чем компилятор gnu c, и я хотел бы использовать его для компиляции программного обеспечения, написанного для Linux. Я уже установил cygwin и успел кое-что скомпилировать. Однако «сделать-установить» не сработало, но это другая проблема. Теперь мой вопрос: как я могу сказать make использовать компилятор Windows Intel?


person Joakim    schedule 23.11.2010    source источник


Ответы (1)


Большинство сценариев configure, которые вы найдете в OSS, вероятно, были созданы Autotools. Те должны, в основном, поддерживать МТП. Чтобы использовать его, хотя у вас может быть установлен GCC параллельно, необходимо установить переменную среды CC в путь (cygwin) к компилятору Intel C и CXX в компилятор Intel C++ перед запуском configure.

У вас могут возникнуть проблемы с программными пакетами, которые безоговорочно устанавливают флаги компилятора, понятные только GCC. Однако я слышал, что к настоящему времени icc фактически реализует большинство из них.

Обновлять

Нечто подобное задавали раньше .

person dennycrane    schedule 23.11.2010
comment
Спасибо за быстрый ответ! Хорошо, я набрал export CC=/path/to/icl.exe и export CXX=/path/to/icl.exe. Не сработало из-за того, что в пути оказались пробелы. :) Ничего не получилось. Не / имя пути и не / имя пути \, поэтому я добавил путь к своему пути в Windows (не в cygwin) и просто набрал экспорт CC = icl. Это сработало, и компилятор был вызван, но теперь он выдал следующую ошибку: ссылка: неизвестная опция -- o (да, с пробелом между -- и o) Есть идеи? - person Joakim; 23.11.2010
comment
В приведенной выше ссылке они установили CC в icc. Это случайно не правильный исполняемый файл? - person dennycrane; 23.11.2010
comment
в моем пути к компилятору Intel нет такого исполняемого файла. Я попытался скомпилировать helloworld.c (используя icl helloworld.c), но получаю сообщение об ошибке: катастрофическая ошибка: не удалось открыть исходный файл stdio. Это немного странно .. Я просмотрел его и нашел несколько stdio.h в своей системе, а также попытался добавить их пути в переменную пути Windows, но все равно не повезло .. - person Joakim; 23.11.2010
comment
Компиляторам обычно нужно сообщать о включенных путях через командную строку, например -I'/path/to/dir1' -I'/path/to/dir2'. Я недостаточно знаком с Cygwin, чтобы быть уверенным, нужно ли указывать здесь путь Cygwin или пути Windows (C:\\...). Как только вы это поняли, вы можете жестко закодировать это в CC, например export CC="icl -I'/path/to/dir1' -I'/path/to/dir2'". Некоторые компиляторы хотят иметь пробел после -I. - person dennycrane; 23.11.2010
comment
Это проблема. ICC хочет Windows Paths, cygwin дает ему Cygwin-ized пути. Intel CC не будет работать под cygwin в Windows без особых ухищрений — см. «cygpath». - person jmanning2k; 23.11.2010
comment
Хм, я пробовал с пробелом и без него. Параметр -I не исправляет ошибку. Я пробовал оба, в cygwin и cmd с путями dos и unix. - person Joakim; 23.11.2010
comment
Ааа.. jmanning2k вы, наверное, правы.. :( Это отстой. Я, наверное, не могу просто передать все пути, данные icl, через cygpath (легко), не так ли? - person Joakim; 23.11.2010