2017-09-30 4 views
-1

J'essaie de compiler des liaisons QuantLib Python SWIG sur l'instance EC2 d'Amazon avec Amazon Linux AMI. J'ai réussi à compiler QuantLib lui-même avec succès, cependant, lorsque j'essaie de compiler des liens swap anaconda python, j'obtiens une erreur avec l'option -fno-plt. Je l'ai mis à jour la version du compilateur gcc à 5.4.0, à l'origine, il était de 4,8Le compilateur gcc ne reconnaît pas l'option -fno-plt

d'abord configurer comme ci-dessous:

sudo ./configure --disable-perl --disable-ruby --disable-mzscheme --disable-guile --disable-csharp --disable-ocaml --disable-r --disable-java PYTHON=/opt/anaconda/anaconda2/bin/python 

Alors je fais comme ci-dessous:

make -C Python 

Je reçois l'erreur :

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' 

Je suis très nouveau à cela et je ne sais pas si je peux supprimer l'option -fno-plt lors de la compilation et si oui, comment?

+1

Il semble que '-fno-plt' soit supporté pour démarrer GCC 6 (si je ne me trompe pas) – valiano

+0

Merci. Est-il possible de confirmer cela? La mise à jour de gcc prend du temps et je veux juste m'assurer que je suis en train de passer à la bonne version. – user5294101

+0

Utilisation de l'explorateur de compilateur - https://godbolt.org: compilez n'importe quel programme avec l'option '-fno-plt' - si la compilation réussit, l'indicateur est supporté. J'ai vérifié qu'il n'est en effet pas supporté avec GCC 5.3.1, et est supporté avec GCC 6.2.1. – valiano

Répondre

0

Vous devez mettre à niveau votre version de GCC.

Le changelog page for GCC 6 dit:

L'option -fno-plt est maintenant entièrement fonctionnel.

Ainsi, à partir de GCC 6 vous pouvez l'utiliser.

+0

La mise à niveau vers gcc 6.1 a résolu mon problème. Merci. – user5294101