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
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.
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
@Alwin Doss Sie sollten die Option -L vor -l angeben. Du hättest es wahrscheinlich umgekehrt gemacht. Versuche dies :)
Sie müssen -L/opt/lib
Hinzufügen, um ld
anzuweisen, nach gemeinsam genutzten Objekten zu suchen.