/ / Caffe-Kompilierungsfehler: gflags.cc 'wird statisch und dynamisch mit dieser ausführbaren Datei verknüpft - c ++, makefile, deep-learning, caffe, gflags

Caffe-Kompilierungsfehler: gflags.cc 'wird statisch und dynamisch mit dieser ausführbaren Datei verknüpft - C ++, Makefile, Deep-Learning, Caffe, Gflags

Ich versuche, Caffe danach zu installieren Anleitung

Grundsätzlich habe ich den folgenden Fehler, wenn ich den letzten make-Befehl eingebe:

me@dl-01:/home/me/caffe-master$ make runtest

.build_release/tools/caffe

caffe: command line brew

usage: caffe command args

commands:

train           train or finetune a model

test            score a model

device_query    show GPU diagnostic information

time            benchmark model execution time

Flags from tools/caffe.cpp:
-gpu (Run in GPU mode on given device ID.) type: int32 default: -1
-iterations (The number of iterations to run.) type: int32 default: 50
-model (The model definition protocol buffer text file..) type: string
default: ""
-snapshot (Optional; the snapshot solver state to resume training.)
type: string default: ""
-solver (The solver definition protocol buffer text file.) type: string
default: ""
-weights (Optional; the pretrained weights to initialize finetuning. Cannot
be set simultaneously with snapshot.) type: string default: ""
.build_release/test/test_all.testbin 0 --gtest_shuffle
ERROR: something wrong with flag "flagfile" in file "/root/glog-0.3.3/gflags-master/src/gflags.cc".  One possibility: file "/root/glog-0.3.3/gflags-master/src/gflags.cc" is being linked both statically and dynamically into this executable.
make: *** [runtest] Error 1

Ich verstehe nicht, wie ich diesen Fehler beheben soll. Hat jemand diesen Fehler schon einmal gefunden? Wie kann ich ihn beheben?

Antworten:

10 für die Antwort № 1

Unabhängig davon, ob Sie dies bereits anderswo gelöst haben oder nicht, gebe ich hier die Antwort, falls andere auf dasselbe Problem stoßen.

In erster Linie scheint dieses Problem dadurch entstanden zu sein Wir lesen die Dinge nicht immer richtig und folge blind allen Anweisungen, die für unseren Fall gelten. Hinweis: sie tun es nicht.</ strong>

In den Installationsanweisungen für Caffe (vorausgesetzt Ubuntu-Anweisungen) gibt es einen Abschnitt, der besagt:

Alles ist in 14.04 verpackt.

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

Blindes Ignorieren des nächsten Titels, in dem es klar heißt:

Verbleibende Abhängigkeiten, 12.04

Wir installieren diese Abhängigkeiten, indem wir sie nach Bedarf erstellen und installieren, was zu dem unglücklichen Nebeneffekt führt, 2 Versionen von libgflags zu haben, eine dynamische (in /usr/lib[/x86_x64] und eine statische in /usr/local/lib

Auflösung

  1. Versprechen Sie sich, dass wir die Anweisungen beim nächsten Mal richtig lesen.
  2. Deinstallieren Sie libgflags

    sudo apt-get remove -y libgflags
    
  3. Löschen make install Versionen

    sudo rm -f /usr/local/lib/libgflags.a /usr/local/lib/libgflags_nothreads.a
    sudo rm -rf  /usr/local/include/gflags
    
  4. Sauberer Caffe Build

    cd <path>/<to>/caffe
    make clean
    
  5. Installieren Sie das libgflags-Paket erneut

    sudo apt-get install -y libgflags-dev
    
  6. Baue Caffe wieder auf

    make all
    make test
    make runtest
    

Et Voila. Alle Tests sollten jetzt laufen und Sie sind bereit, das Boot zu rocken.


1 für die Antwort № 2

Ich hatte auch zwei Bibliotheken installiert, eine gemeinsame.so Bibliothek und eine statische .a Bibliothek. Ich habe sie alle sowie den Ordner / usr / local / include / glog entfernt. Die .so-Datei, die ich mitgebracht hatte, als ich das System kompilierte, während die .a-Datei von einem nativen und aktuellen Build stammte. Letztendlich ging es darum, Glog (nativ) so aufzubauen, dass es die .so-Dateien lieferte. Ich habe mit einem sauberen Download begonnen:

git clone git://github.com/google/glog

Dann habe ich CMakeLists.txt bearbeitet. Wo steht:

add_library (glog
${GLOG_SRCS}
)

Ich habe es geändert in:

add_library (glog SHARED
${GLOG_SRCS}
)

Als nächstes sollten Sie in der Lage sein, den anderen Anweisungen zu folgen. Für meinen speziellen Fall musste ich etwas andere Anweisungen verwenden, ohne zu sagen, dass Sie dies tun müssen. Für mich war es: mkdir bauen cd bauen

export CXXFLAGS="-fPIC"
cmake ..
make
sudo make install

Dies gab mir die .so-Dateien und legte sie an der richtigen Stelle. Dann habe ich mit caffe angefangen und es hat den Fehler für mich behoben.