web-dev-qa-db-fra.com

/ usr / bin / ld: impossible de trouver

J'ai créé un .so fichier et placez-le à l'emplacement /opt/lib et a ajouté ce chemin à LD_LIBRARY_PATH maintenant après cela lorsque j'essaie de compiler mon programme principal avec la commande suivante:

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

J'obtiens l'erreur suivante:

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

Quelqu'un peut il m'aider avec ça. J'ai créé la bibliothèque partagée en utilisant les blocs de code IDE

18
Alwin Doss

Ajouter -L/opt/lib aux paramètres de votre compilateur, le compilateur et l'éditeur de liens recherchent ce chemin pour libcalc.so dans ce dossier.

22
Matias Valdenegro

Lorsque vous appelez gcc, il faut dire

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

not -libcalc.so 

J'ai un problème similaire avec les marques générées automatiquement.

Vous pouvez créer un lien logiciel de votre répertoire de compilation vers le répertoire de la bibliothèque. Ensuite, la bibliothèque devient "locale".

cd /compile/directory

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

@Alwin Doss Vous devez fournir l'option -L avant -l. Vous auriez probablement fait l'inverse. Essaye ça :)

2
Sunil

Vous devez ajouter -L/opt/lib pour dire à ld d'y rechercher des objets partagés.

2
geekosaur