Да, этот вопрос задан раньше... Я пробовал все, что упоминалось в предыдущих ответах. Моя настройка очень проста, поэтому это не должно быть так сложно.
Я просто хочу запрограммировать mysql с помощью С++. Мой исходный код берется из примера типа "hello world" здесь:
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1.html
Я на Ubuntu 12.10. Я пытаюсь:
g++ -Wall -o firsttry_prog -I/usr/include/mysqlcppconn -I/usr/local/boost_1_53_0 -L/usr/lib/x86_64-linux-gnu -l:libmysqlclient_r.so.18 -L/usr/lib/mysqlcppconn -lmysqlcppconn firsttry.cpp
Он компилирует (если я использую -c вариант), но не буду строить, давая мне печально известный:
/tmp/ccn768hj.o: In function `main':
firsttry.cpp:(.text+0x3a): undefined reference to `get_driver_instance'
Несколько деталей:
- 'firsttry.cpp' - это то, что я назвал файлом исходного кода, снова взятый из официального примера
- Как вы можете видеть, я подключаюсь в библиотеке mysqlclient и в библиотеке mysqlcppconn. Много раз, когда этот вопрос задавался ранее, ответ заключался в том, чтобы связать их.
- Некоторые другие исторические ответы предполагают, что исходный код образца неверен и что соответствующая функция должна находиться в пространстве имен sql:: mysql и т.д. Я уверен, что исходный код в порядке. Опять же, он компилируется, и изменение пространств имен в исходном коде просто ухудшает его.
Заранее благодарим за любую помощь, которую вы можете предоставить.