Я использую Python 2.7.17 и Numpy 1.16.5, чтобы обернуть код Fortran 77 с помощью f2py. Обертывание хорошо работает на нескольких локальных машинах, но я получаю ошибку сегментации во время выполнения на удаленном сервере. У меня есть похожие среды, компиляторы и опции **.
Основное различие, которое я наблюдаю до сих пор, заключается в компиляции C в stdout компиляции f2py. Я получаю разные уровни оптимизации.
FCFLAGS = -I/appli/gcc/gcc-7.4.0__7.2.0/bin/ \
--f77exec=gfortran \
--f90exec=gfortran \
--f77flags="-O0 -g -C" \
--f90flags="-O0 -g -C " \
--debug \
--noopt
f2py $(FCFLAGS) -c -m module $(FSRC)
FSR C, являющийся исходными файлами F77
во время компиляции единственное заметное отличие:
local:
C compiler: x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-5Z483E/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC
remote:
C compiler: gcc -pthread -B /home2/datahome/jcollin/.conda/envs/mt3d_stochopy/compiler_compat -Wl,--sysroot=/ -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC
Поэтому мне интересно, есть ли способ указать C опции компилятора, чтобы избежать различий между локальным и удаленным?
Заранее благодарим за помощь
** Точное окружение: местное:
- Python 2.7.15rc1
- Numpy 1.16.3
- Linux ядро 4.15.0-74-generi c
- г cc 7.4.0
- Архитектура: x86-64
пульт :
- Python 2.7.17
- Numpy 1.16.5
- Ядро: Linux 3.12.53-60.30-default
- g cc (G CC) 7.4.0
- Архитектура: x86-64
Небольшое отличие состоит в том, что я использовал virtualenv 15.1.0 на локальном и Анаконда (версия 1.7.2) на пульте