ошибка ссылки в mysqlpp

как и многие другие, у меня возникла проблема с компиляцией программы, включая mysqlpp.
Кажется, что mysqlpp установлен правильно, пути к библиотекам также правильно установлены в /etc/ld.so.conf и известны (так я думаю):

$ sudo ldconfig -p | grep mysql
libmysqlpp.so.3 (libc6,x86-64) => /usr/local/lib/libmysqlpp.so.3
libmysqlpp.so (libc6,x86-64) => /usr/local/lib/libmysqlpp.so
libmysqlclient.so.18 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
libmysqlclient.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libmysqlclient.so

Но что-то не так, компилятор не находит библиотеку mysqlpp.
Команда Linking-Compiler:

 /usr/bin/c++ -lm -L/usr/lib -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient -lmysqlpp -o myprogram  myprogram.o

Сообщение об ошибке, что ссылки mysqlpp отсутствуют (помимо многих других отсутствующих ссылок):

/usr/local/include/mysql++/row.h:328: undefined reference to `mysqlpp::Row::at(unsigned long) const'
myprogram.o: In function `mysqlpp::StoreQueryResult::operator=(mysqlpp::StoreQueryResult const&)':
/usr/local/include/mysql++/result.h:252: undefined reference to `mysqlpp::StoreQueryResult::copy(mysqlpp::StoreQueryResult const&)'
myprogram.o: In function `long mysqlpp::String::do_conv<long>(char const*) const':
/usr/local/include/mysql++/mystring.h:615: undefined reference to `mysqlpp::String::length() const'
/usr/local/include/mysql++/mystring.h:615: undefined reference to `mysqlpp::String::data() const'
collect2: ld returned 1 exit status

Я в конце своего остроумия. Возможно, кто-то из вас сможет мне помочь. Спасибо!!

1

Решение

Компоновщик ищет зависимости в обратном порядке, поэтому вам нужно поместить библиотеки после файлы объекта (или источника) в командной строке.

$ c++ myprogram.o -o myprogram -lm -L/usr/lib -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient -lmysqlpp
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]