wake-up-neo.com

/ usr / bin / ld: kann nicht finden

Ich habe eine .so - Datei erstellt und an der Stelle /opt/lib Abgelegt. Danach habe ich diesen Pfad zu LD_LIBRARY_PATH Hinzugefügt, als ich versuchte, mein Hauptprogramm mit dem folgenden Befehl zu kompilieren:

g++ -Wall -I/home/alwin/Development/Calculator/ main.cpp -lcalc -o calculator

Ich erhalte folgenden Fehler:

/usr/bin/ld: cannot find -lcalc
collect2: ld returned 1 exit status

Kann mir jemand dabei helfen. Ich habe die gemeinsam genutzte Bibliothek mit den Codeblöcken IDE erstellt

18
Alwin Doss

Fügen Sie -L/opt/lib Zu Ihren Compiler-Parametern hinzu, damit der Compiler und der Linker diesen Pfad nach libcalc.so In diesem Ordner durchsuchen.

22

Wenn Sie gcc anrufen, sollte es heißen

g++ -Wall -I/home/alwin/Development/Calculator/ -L/opt/lib main.cpp -lcalc -o calculator

not -libcalc.so 

Ich habe ein ähnliches Problem mit automatisch generierten Marken.

Sie können einen Softlink von Ihrem Kompilierungsverzeichnis zum Bibliotheksverzeichnis erstellen. Dann wird die Bibliothek "lokal".

cd /compile/directory

ln -s  /path/to/libcalc.so libcalc.so
3
otter

@Alwin Doss Sie sollten die Option -L vor -l angeben. Du hättest es wahrscheinlich umgekehrt gemacht. Versuche dies :)

2
Sunil

Sie müssen -L/opt/lib Hinzufügen, um ld anzuweisen, nach gemeinsam genutzten Objekten zu suchen.

2
geekosaur