Ray*_* NY 20 c++ mysql ubuntu-12.10
是的,之前已经问过这个问题......我已经尝试了之前答案中提到的所有内容.我的设置非常简单,所以这不应该那么难.
我只想用C++编写针对mysql的程序.我的源代码是来自'hello world'类型示例的verbatem:
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
Run Code Online (Sandbox Code Playgroud)
它编译(如果我使用-c选项)但不会构建,给我臭名昭着:
/tmp/ccn768hj.o: In function `main':
firsttry.cpp:(.text+0x3a): undefined reference to `get_driver_instance'
Run Code Online (Sandbox Code Playgroud)
一些细节:
提前感谢您提供的任何帮助.
小智 29
所以我现在已经有这个问题一个星期了,我也对此感到非常沮丧.我刚才能够最终构建一个除了登录mysql之外什么都不做的程序,我真的很高兴地尖叫着.这就是我所拥有的,我希望它有所帮助.
我首先从源代码编译c ++连接器库,但过了一段时间我想也许我做错了所以我只是用apt来得到它:
sudo apt-get install libmysqlcppconn-dev
Run Code Online (Sandbox Code Playgroud)
这是我的简单测试器源文件"tester.cpp"
#include <stdlib.h>
#include <iostream>
#include <mysql_connection.h>
#include <driver.h>
#include <exception.h>
#include <resultset.h>
#include <statement.h>
using namespace sql;
int main(void){
sql::Driver *driver;
sql::Connection *con;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306","root","YOURPASSWORD");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
最后是g ++编译命令:
sudo g++ -Wall -I/usr/include/cppconn -o testapp tester.cpp -L/usr/lib -lmysqlcppconn
Run Code Online (Sandbox Code Playgroud)
这对我有用,我希望它能帮助你解决问题!
小智 9
对我来说,简单地交换最后两个参数的顺序解决了这个问题.我不知道为什么但是get_driver_instance
如果我-lmysqlcppconn
在源文件之后的末尾指定选项,则链接器能够找到该函数.
g++ -Wall -o firsttry_prog -I/usr/include/mysqlcppconn -L/usr/lib/mysqlcppconn firsttry.cpp -lmysqlcppconn
Run Code Online (Sandbox Code Playgroud)
另请注意,我认为它们是多余的,因此我选择了以下选项
-I/usr/local/boost_1_53_0 -L/usr/lib/x86_64-linux-gnu -l:libmysqlclient_r.so.18
Run Code Online (Sandbox Code Playgroud)
如果你像我一样健忘,并且没有在CMakeLists.txt中链接库:
target_link_libraries(<target> mysqlcppconn)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23295 次 |
最近记录: |