Amazon Linux AMI로 Amazon EC2 인스턴스에서 QuantLib Python SWIG 바인딩을 컴파일하려고합니다. 필자는 성공적으로 QuantLib을 컴파일했지만 anaconda python swig 바인딩을 컴파일하려고 할 때 -fno-plt 옵션으로 오류가 발생합니다.gcc 컴파일러가 -fno-plt 옵션을 인식하지 않습니다.
그런 다음sudo ./configure --disable-perl --disable-ruby --disable-mzscheme --disable-guile --disable-csharp --disable-ocaml --disable-r --disable-java PYTHON=/opt/anaconda/anaconda2/bin/python
내가 다음과 같이합니다 :
make -C Python
나는 오류가
나는 다음과 같이 구성 원래 4.8첫 번째, 5.4.0에 GCC 컴파일러 버전을 업그레이드 :
make: Entering directory `/home/ec2-user/downloads/QuantLib-SWIG-1.8/Python'
make all-am
make[1]: Entering directory `/home/ec2-user/downloads/QuantLib-SWIG-1.8/Python'
CXXFLAGS="-O3 -fno-strict-aliasing -Wno-unused -Wno-uninitialized -Wno-sign-compare -Wno-write-strings" CC="gcc" CXX="g++" /opt/anaconda/anaconda2/bin/python setup.py build
running build
running build_py
running build_ext
building 'QuantLib._QuantLib' extension
gcc -fno-strict-aliasing -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/opt/anaconda/anaconda2/include/python2.7 -I/usr/local/include -c QuantLib/quantlib_wrap.cpp -o build/temp.linux-x86_64-2.7/QuantLib/quantlib_wrap.o -Wno-unused -O3 -fno-strict-aliasing -Wno-unused -Wno-uninitialized -Wno-sign-compare -Wno-write-strings
gcc: error: unrecognized command line option ‘-fno-plt’
error: command 'gcc' failed with exit status 1
make[1]: *** [.build-stamp] Error 1
make[1]: Leaving directory `/home/ec2-user/downloads/QuantLib-SWIG-1.8/Python'
make: *** [all] Error 2
make: Leaving directory `/home/ec2-user/downloads/QuantLib-SWIG-1.8/Python'
나는 매우 새로운데 컴파일 할 때 -fno-plt 옵션을 제거 할 수 있는지 잘 모르겠다. 그렇다면 어떻게?
GCC 6을 시작하는'-fno-plt'가 지원됩니다. (내가 잘못하지 않은 경우) – valiano
감사합니다. 이것을 확인하는 방법이 있습니까? gcc를 업그레이드하는 데는 시간이 걸리고 원하는 버전으로 업그레이드하고 싶습니다. – user5294101
컴파일러 탐색기 사용 - https://godbolt.org :'-fno-plt' 옵션을 사용하여 프로그램 컴파일 - 컴파일이 성공하면 플래그가 지원됩니다. GCC 5.3.1에서는 실제로 지원되지 않으며 GCC 6.2.1에서 지원된다는 것을 확인했습니다. – valiano