./configure make make install на Windows с icc

Наскоро се върнах към Windows7 (x64) поради проблеми с производителността на моята графична карта на linux, но ми липсва възможността лесно да компилирам софтуер с отворен код на Windows. Имам копие на компилатора на intel c, който е малко по-добър от компилатора на gnu c и бих искал да го използвам за компилиране на софтуер, написан за linux. Вече инсталирах cygwin и успях да компилирам нещо. "Make-install" обаче не работи, но това е друг проблем. Сега въпросът ми е как мога да кажа на "make" да използва компилатора на windows intel?


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


Отговори (1)


Повечето от configure скриптовете, които ще намерите в OSS, вероятно са създадени от Autotools. По принцип те трябва да поддържат icc. За да го използвате, въпреки че може да имате инсталиран GCC паралелно, ще е необходимо да зададете променливата на средата CC на пътя (cygwin) към C компилатора на Intel и CXX към C++ компилатора на Intel, преди да стартирате configure.

Може да срещнете проблеми със софтуерни пакети, които безусловно задават флагове на компилатора, които само GCC разбира. Чувал съм обаче, че досега icc всъщност прилага повечето от тях.

Актуализация

Нещо подобно е задавано преди .

person dennycrane    schedule 23.11.2010
comment
Благодаря за бързия отговор! Добре, написах export CC=/path/to/icl.exe и export CXX=/path/to/icl.exe. Не работи поради това, което се оказа празно пространство в пътя. :) Нищо не се получи. Не /Path name, нито /Path\ name, така че добавих пътя към моя път в 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), но получавам грешката: catastrophic error: could not open source file 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