Мне удалось успешно построить cython на Ubuntu 14.04 из источника, как описано в этом вопросе/ответе SE Compiling cython From source with icc, и я загрузил исходный код отсюда - Cython source code download.Как заменить python distutils gcc-линкером с icc?
Команда компиляции Cython является
CC = МЦЙ LINKCC = МЦЕ python3.4 setup.py строить
Я прилагаю журнал сборки. Это STILL с использованием gcc для связи. Вот пример журнала построения.
Появляется CC = icc LINKCC = icc NOT похоже, чтобы изменить компоновщик на icc. Он по-прежнему использует x86_64-linux-gnu-gcc. Когда я устанавливаю переменную окружения LDFLAGS = -lirc, переменная окружения передается gcc, а не icc. Также, когда я печатал заявления печати в BuildExecutable.py, они не вызываются.
icc -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.4m -c /home/aswin/libPython/Cython-0.24/Cython/Plex/Scanners.c -o build/temp.linux-x86_64-3.4/home/aswin/libPython/Cython-0.24/Cython/Plex/Scanners.o
icc: command line warning #10006: ignoring unknown option '-fwrapv'
creating build/lib.linux-x86_64-3.4
creating build/lib.linux-x86_64-3.4/Cython
creating build/lib.linux-x86_64-3.4/Cython/Plex
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -lirc -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.4/home/aswin/libPython/Cython-0.24/Cython/Plex/Scanners.o -o build/lib.linux-x86_64-3.4/Cython/Plex/Scanners.cpython-34m.so
Как исправить это?
gansub, вы установили 'LDSHARED =" icc -shared "переменную среды? Как? Как 'LDSHARED =" icc -shared "CC = icc python3.4 setup.py build_ext'? – osgx
Можете добавить эту команду к своему ответу? Его также можно установить с добавлением его перед командой LDSHARED = smth .. (просто чтобы сделать ответ более полезным и понятным для будущих посетителей) – osgx
gansub, не связан или не найден? Можете ли вы запустить ldd в некоторых библиотеках/исполняемых файлах с проблемой? Если он связан, но «не найден», вы можете добавить путь к lib к /etc/ld.so.conf или к LD_LIBRARY_PATH или к опции [rpath] (https://en.wikipedia.org/wiki/Rpath) шаг привязки (который является «icc -shared», добавьте параметры) – osgx