Проблема при соединении программы c ++ с API-интерфейсом lpsolve - PullRequest
0 голосов
/ 16 февраля 2020

Я сталкиваюсь с некоторыми проблемами при связывании моей программы на C ++, вот что я делаю: g++ tp.cpp -llpsolve55 -lcolamd -ldl -o MyExe и командная строка возвращает мне это:

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

Но я уже установил lpsolve, он отображается в Synapati c как установленный, и я даже установил его через терминал

1 Ответ

2 голосов
/ 16 февраля 2020

Если /usr/lib/lp_solve не находится в обычном пути поиска библиотек, вы можете добавить этот путь к исполняемому файлу при компоновке. Также обратите внимание, что библиотеки обычно должны стоять последними:

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

Аргумент -L добавляет каталог в список каталогов для поиска библиотек при выполнении ссылок.

-Wl говорит компилятору передать следующее компоновщику.

Аргумент линкеры -rpath,<path> говорит ему добавить <path> к MyExe, чтобы он мог найти библиотеку при последующем запуске программы.

...