2017-09-30 3 views
-1

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 옵션을 제거 할 수 있는지 잘 모르겠다. 그렇다면 어떻게?

+1

GCC 6을 시작하는'-fno-plt'가 지원됩니다. (내가 잘못하지 않은 경우) – valiano

+0

감사합니다. 이것을 확인하는 방법이 있습니까? gcc를 업그레이드하는 데는 시간이 걸리고 원하는 버전으로 업그레이드하고 싶습니다. – user5294101

+0

컴파일러 탐색기 사용 - https://godbolt.org :'-fno-plt' 옵션을 사용하여 프로그램 컴파일 - 컴파일이 성공하면 플래그가 지원됩니다. GCC 5.3.1에서는 실제로 지원되지 않으며 GCC 6.2.1에서 지원된다는 것을 확인했습니다. – valiano

답변

0

GCC 버전을 업그레이드해야합니다.

changelog page for GCC 6

는 말한다 :

-fno-PLT 옵션은 이제 완전히 작동합니다.

따라서 GCC 6에서 사용할 수 있습니다.

+0

gcc 6.1로 업그레이드하면 문제가 해결되었습니다. 감사. – user5294101

관련 문제