Je rencontre quelques problèmes lors de la liaison de mon programme c++, voici ce que je fais : g++ tp.cpp -llpsolve55 -lcolamd -ldl -o MyExe et la ligne de commande me renvoie ceci :

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

Mais j'ai déjà installé lpsolve, il apparaît dans Synapatic comme installé et je l'ai même installé via le terminal

0
ADL92 16 févr. 2020 à 02:53

1 réponse

Meilleure réponse

Si /usr/lib/lp_solve ne se trouve pas dans le chemin de recherche normal des bibliothèques, vous pouvez ajouter ce chemin à votre exécutable lors de la liaison. Notez également que les bibliothèques devraient généralement arriver en dernier :

g++ -o MyExe tp.cpp -L /usr/lib/lp_solve  -Wl,-rpath,/usr/lib/lp_solve -llpsolve55 -lcolamd

L'argument -L ajoute le répertoire à la liste des répertoires dans lesquels rechercher les bibliothèques lors de la liaison.

-Wl indique au compilateur de transmettre ce qui suit à l'éditeur de liens.

L'argument de l'éditeur de liens -rpath,<path> lui dit d'ajouter <path> à MyExe afin qu'il puisse trouver la bibliothèque lorsque vous exécuterez plus tard le programme.

2
Ted Lyngmo 16 févr. 2020 à 01:13