2016-07-20 15 views
-1

Ich habe für einige Installation gelesen, muss ich die Umgebungsvariablen LDFLAGS, LD_LIBRARY_PATHS und CXXFLAGS richtig für ./compile.sh zu laufen. Allerdings bin ich mir nicht sicher, welchen Weg ich da geben soll. Kann jemand bitte erklären, was diese Flaggen bedeuten und wofür werden sie gebraucht? Haben sie etwas mit der GCC-Installation zu tun?Was genau sind LDFLAGS und CXXFLAGS?

Ich arbeite an CENTOS 6.6 mit Standard gcc 4.4.7, aber ich möchte gcc 4.9.1 verwenden, die in/opt/rh/devtoolset-3/root/usr/bin/gcc installiert ist.

Ich versuchte, andere ähnliche Fragen nachzuschlagen, bekam aber meine Antwort nicht. Ich möchte wissen, was genau die Wege/Flaggen bedeuten.

Ich bin neu in Linux, also bitte ignorieren meine Ignoranz. Vielen Dank.

+0

Schwer zu sagen, ohne zu wissen, was 'compile.sh' ist, aber' CXXFLAGS' ist eine Standardvariable, die GNU make als Flags verwendet, um an C++ zu übergeben Compiler bei Verwendung impliziter Regeln. Gleiches mit 'LDFLAGS'. [Vollständige Liste hier] (http://www.gnu.org/software/make/manual/make.html#Implicit-Variables). Ihr 'compile.sh' ruft höchstwahrscheinlich' make' zu ​​einem bestimmten Zeitpunkt auf, der dann diese Variablen verwendet, um geeignete Linker/Compiler-Flags zu setzen. –

+0

Danke @DanielKamilKozar! Ich versuche, Bazel auf meiner Maschine zu installieren und folge einfach den Anweisungen [hier] (http://www.bazel.io/docs/install.html) und es scheint nicht sehr geradlinig zu sein. Also habe ich mir ein Thema auf github angeschaut, wo sie gesagt haben, dass ich alle diese Umgebungsvariablen aktualisieren muss. – kskp

+0

CentOS 6,8 - 64: 'cd bazel-0.3.0 /'; 'scl devtoolset-3 aktivieren bash &&./compile.sh': Führt OK bis Element # 689 aus und beendet sich dann mit» gcc: interner Compiler Fehler: Killed (Programm cc1plus) «,» Verstrichene Zeit: 322.769s «. –

Antwort

0

CentOS 6.8 - x86_64:

Mit bazel-0.3.0.tar.gz https://codeload.github.com/bazelbuild/bazel/tar.gz/0.3.0 und devtoolset-4. (devtoolset-4-gcc, *-4-gcc-c++ bietet gcc 5.3.1).

cd bazel-0.3.0/ 
scl enable devtoolset-4 bash && ./compile.sh 

Build successful! Binary is here: /home/knudfl/tmp/bazel-0.3.0/output/bazel

Hinweis: Der komplette devtoolset-4 ist nicht erforderlich. Das wird tun: yum install devtoolset-4-gcc-c++ (Das wird nur 5 Pakete installieren.)

+0

Danke @KnudLarsen. Ich kann Bazel 0.3.0 nicht verwenden. Ich muss schließlich auf CentOS 6.6 Google Syntaxnet installieren. Bazel ist nur Stufe 1. Dann muss ich Tensorflow installieren und Syntaxnet laufen lassen. Kannst du bitte meine Problembeschreibung [hier] (https://github.com/tensorflow/models/issues/276) anschauen und etwas vorschlagen? – kskp

+0

»' devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.1/libstdC++ _ nichtshared.a (hashtable_C++ 0x.o): undefinierter Verweis auf '** Symbol 'ceil @ @ GLIBC_2.2.5 '** «: Fazit →' devtoolset-3' kann nicht verwendet werden. .... Was wir wissen ist, dass 'Syntaxnet' OK mit z.B. gcc-4.9.x ... Ich werde wie "gcc-C++ - 4.9.3-1.el6.x86_64.rpm" hochladen und meine obige Antwort mit einigen Informationen bearbeiten. –