2013-11-08 2 views
4

При компиляции, как вы можете определить, какие флаги компилятора установлены? Я имею дело со странным вопросом, где, если у меня нет каких-либо переменные окружения:Определение происхождения флагов компилятора

$ env | grep FLAG 
$ 

затем gfortran использует все эти флаги: -Wall -arch i686 -arch x86_64 -Wall -undefined dynamic_lookup -bundle

Принимая во внимание, в среде, где они устанавливаются

$ env | grep FLAG 
LDFLAGS= 
CCFLAGS= 
CXXFLAGS= 
CFLAGS= 
FFLAGS= 

единственный флаг: -Wall

Я просто потерял о том, как обеспечить последовательную ному ild при распространении кода.

EDIT: Дальнейшие исследования подсказывают, что эта магия может произойти в numpy.distutils.fcompiler, но я не знаю!

+0

Кажется, вы можете переопределить флаги компилятора по умолчанию, выполнив 'f2py -c --verbose --opt = '- O0' modules.pyf modules.f90' – ilciavo

ответ

1

Ну, я не совсем уверен в Numpy, но я distutils использует distutils.sysconfig.customize_compiler для установки флагов.

По умолчанию используются флаги, которые были установлены в Makefile, когда ваш интерпретатор был создан, но к ним могут быть добавлены переменные среды.