Библиотека включает включаемый файл заголовочных файлов и файл lib, который включает все файлы .la, .so. Я добавил библиотеку в /usr/local/include и /usr/local/lib, а также отредактировал файл ld.so.conf. После того, как все это было сделано, я предполагал, что моя программа может быть успешно скомпилирована. Однако произошла ошибка:
Код: Выделить всё
$ g++ -o b try.cpp
/usr/bin/ld: /tmp/ccTWcUvt.o: in function `main':
try.cpp:(.text+0x36): undefined reference to `OsiClpSolverInterface::OsiClpSolverInterface()'
/usr/bin/ld: try.cpp:(.text+0x45): undefined reference to `OsiClpSolverInterface::~OsiClpSolverInterface()'
Код: Выделить всё
g++ -o b try.cpp -lCbc -lCbcSolver -lCgl -lClp -lcoinasl -lcoinglpk -lcoinmumps -lCoinUtils -lOsi -lOsiCbc -lOsiClp -lOsiCommonTest -lOsiGlpk
Мне интересно, есть ли какой-нибудь способ избежать этого многословия? Кроме того, если бы кто-нибудь мог объяснить мне, почему недостаточно просто добавить путь к файлам библиотеки, а нужно явно указать имена, я бы тоже был очень признателен.
Подробнее здесь: https://stackoverflow.com/questions/701 ... -libraries
Мобильная версия