Linking-Fehler: DSO fehlt von der Kommandozeile aus

Ich bin ziemlich neu bei Linux (Ubuntu 14.04 LTS 64bit), kommt von Windows, und bin versucht, den port über eine bestehende CUDA-Projekt von mir.

Beim verknüpfen über

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o Display.o FileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lGLU -lcuda -lcudart

Ich die folgende Fehlermeldung auftreten:

/usr/bin/ld: /usr/local/lib/libglfw3.a(x11_clipboard.c.o): undefined reference to  symbol 'XConvertSelection'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [CUDANN] Error 1

Die Antwort scheint eng mit den Lösungen in diesem post (Seltsam verknüpfen Fehler: DSO fehlt von der Kommandozeile aus), aber angesichts meiner Unerfahrenheit mit Linux war ich nicht in der Lage, passen Sie zu meinem eigenen problem.

Irgendwelche Ideen auf, was das problem sein könnte?

Hier ist die vollständige Ausgabe während der Kompilierung: https://gist.github.com/wbolden/857eddd11e4dcb915c02

Und hier ist mein Versuch an einem Makefile:
https://gist.github.com/wbolden/135033daae04ed0d8cf3

Der linker sagt Ihnen genau, was das problem ist, und die Antwort, die du verlinkt der dir genau sagt, was zu tun ist, um es zu beheben. Sie sind übersichtlich auf einer Plattform ausgeführt verbietet indirekte Verlinkung. Fügen Sie die Bibliothek-Abhängigkeiten für die erforderlichen zusätzlichen Bibliotheken (Tipp libX11 wird gezeigt, direkt in der linker-Fehlermeldung). Ich bin das entfernen die CUDA-tag von dieser Frage, es hat nichts zu tun mit CUDA oder CUDA Programmierung.
Wie gesagt, ich bin ziemlich neu bei Linux (ich habe nur die Arbeit mit ihm für ein paar Tage), was also könnte klar sein, jemanden mit selbst moderate Erfahrung ist nicht alles, dass für mich klar. Mit ldd bekomme ich die folgende gist.github.com/WilliamHBolden/51a8721b4f8d89df2cef aber ich verstehe nicht, was mit ihm zu tun. Ich habe versucht, hinzufügen -L/usr/x86_64-linux-gnu-und -L/lib64 aber das änderte nichts an der Fehlermeldung.
Vielleicht müssen Sie verlassen gist oder andere system, weil jetzt gist sind nicht verfügbar
Meinen Benutzernamen geändert, ersetzen WilliamHBolden mit wbolden
Siehe auch Merkwürdig-linking-Fehler: DSO fehlt von der Befehl-Linie, DSO fehlt von der Befehl-Linie und Linking Fehler: DSO fehlt von der Befehl-Linie.

InformationsquelleAutor Will Bolden | 2014-07-28

Schreibe einen Kommentar