Ich erhalte diese Störung, wenn ich versuche, den Gaußsche Kernel-Test auf der Shogun Entwickler-Seite bei
https://github.com/shogun-toolbox/shogun/wiki/README_developer gegeben zu kompilieren.
Ich folgte den gegebenen Anweisungen, um die Shogun-Bibliothek .so
unter https://github.com/shogun-toolbox/shogun/wiki/INSTALL herzustellen.
Ich ging dann in das Verzeichnis über das, das die gemeinsame Objektbibliothek enthielt und die Reihenfolge "g++ GTest.cpp shogun/libshogun.so -o a.out"
ausgab und den Fehler erhielt, der das Thema dieses Beitrags ist.
Ich lief durch einen Thread im Netz (2 Link Einschränkung), aber ich konnte keine bestimmte Lösung finden.
Hat jemand eine Idee, wie man das löst?'undefined reference to `Shogun :: SGRefObject :: unref()' beim Kompilieren mit .so Objekt
0
A
Antwort
0
Sie sollten nicht versuchen, die gemeinsam genutzte Bibliothek direkt mit Ihrem Beispiel zu verknüpfen. Sagen Sie bitte ein Shogun basierten Beispieldatei erstellt, lassen Sie uns es um shogun_example.cpp
, nennen dies zu kompilieren Sie laufen soll:
g++ shogun_example.cpp -o shogun_example -lshogun
ist dies im Falle der libshogun.so
im Suchpfad des Linkers ist.
Wenn die kompilierte libshogun.so
nicht im Suchpfad ist, dann sollten Sie den Speicherort der gemeinsam genutzten Bibliothek an den Compiler bieten mit -L
, zum Beispiel:
g++ shogun_example.cpp -o shogun_example -L<path to the shogun shard lib> -lshogun
Verwandte Themen
- 1. undefined reference to `_addcarry_u64'
- 2. flex: undefined reference to `yywrap‘ nur beim Kompilieren/Verknüpfung getrennt
- 3. undefined reference to `__stack_chk_fail‘
- 4. undefined reference to `LLVMLinkInInterpreter‘
- 5. gcc undefined reference to
- 6. undefined reference to `__glewCreateShader`
- 7. undefined reference to `x264_encoder_open_125'
- 8. Fragen Kompilieren mit curlpp: undefined reference to Symbol 'curl_easy_setopt @@ CURL_OPENSSL_3'
- 9. undefined reference to `cv :: groupRectangles`
- 10. undefined reference to `GlewInit‘ - OpenGL
- 11. CMake "undefined reference to function"
- 12. undefined reference to `_intel_fast_memmove‘ und `__libm_flt_rounds'
- 13. Wie Fehler undefined reference to private_aes()
- 14. Arduino C: undefined reference to `readArms() '
- 15. „undefined reference“ Fehler kompilieren, wenn Nmap von der Quelle kompilieren
- 16. undefined reference to all friend-Funktionen
- 17. OpenCV Fehler: undefined reference to `cvLoadImage‘ Ubuntu
- 18. MySQL C++ Anschluss: undefined reference to `get_driver_instance‘
- 19. Fehler in C++ undefined reference to main
- 20. undefined reference to Symbol ‚pthread_key_delete @@ GLIBC_2.2.5
- 21. C++ Shared Library undefined reference to `FooClass :: SayHello()‘
- 22. undefined reference in qt
- 23. g ++ Skeleton wxWidget Projekt "undefined reference to main" Fehler
- 24. undefined reference to 'abc :: abc()' mit Dwarf Fehler: Offset
- 25. undefined reference Open
- 26. NDK OpenGL undefined reference
- 27. undefined reference wenn extern mit
- 28. cuda Shared Library Verlinkung: undefined reference to cudaRegisterLinkedBinary
- 29. undefined reference to Vtable - virtuelles Element generierten Klassen von gsoap
- 30. Pcap Funktionen "undefined reference" haben
Leider diese funktionierte nicht. Ich benutze die Anweisung "g ++ -std = C++ 11 -DHAVE_EIGEN3 classifier_gaussian_process_binary_classification.cpp -o classgp -lshogun" in einem Versuch, das Beispiel innerhalb des Examples-Ordners zu kompilieren und bekomme eine Wäscherei von undefinierten Referenzen. Ich setze jede der g ++ include-Suchvariablen auf den Ordner/usr/local/include, in dem Shogun seinen Include-Ordner nach der Installation gespeichert hat. Ich habe auch die Variable LD_LIBRARY_PATH eingerichtet, damit Shogun die gemeinsam genutzte Bibliothek finden kann. Ich kann andere Beispiele zusammenstellen und ich habe eigen 3 mit apt-get – ConfusedGrammer
installiert Also warum funktioniert es nicht? – ConfusedGrammer
Das Problem wurde gelöst. Stellt sich heraus, OpenCL ist eine Abhängigkeit und es ist etwas, was ich übersehen, weil ich nicht den Text gelesen habe, wie ich die gemeinsam genutzten Bibliotheken mit cmake installiert wurde. Lektion hier ist CMake Anweisungen während der Installation zu lesen, unabhängig davon, wie einfache Anweisungen auf einer Website Installation lol machen. Danke, dass du mich ertragen hast. – ConfusedGrammer