2010-08-10 34 views
1

构建甚至最简单的示例时,我会收到“未定义的引用'get_driver_instance'”:http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1.html。它在我的本地机器上构建并运行良好,但不会在服务器上构建 - 看起来像连接mysql库问题。
这是我的构建CMD:
G ++ -o测试-Iinclude -llib -L在/ usr/lib64下/ mysql的main.cpp中未定义对'get_driver_instance'的引用

我不能在服务器上运行的本地内置二进制文件,因为它是使用内置动态的'libmysqlclient.so'。我也尝试在本地机器上安装静态libmysqlclient.a,但在我的/ usr/lib/mysql目录中找不到'libmysqlclient.a'。我假设只有在服务器上运行它的方法是,如果我可以在本地机器上静态构建它,或者我可以直接在服务器上编译和构建它。我试过'sudo yum install mysql-devel',但我只看到libmysqlclient.so - 找不到'libmysqlclient.a'。有没有办法在我的本地Linux上安装静态mysqlclient或者是我的编译cmd错误?我如何在服务器上构建源代码?

回答

1

尝试添加 '-lmysqlclient' 的命令,即:G ++ -o测试-Iinclude -llib -L在/ usr/lib64下/ mysql的-lmysqlclient的main.cpp

+0

嗨shuvalov,试过但没有成功。好像我有一个与MySQL连接器/ C++头文件的链接问题。这是我的文件夹结构: /include - > contains/cppconn和mysql_driver.h以及mysql_connection.h。 /lib - >包含已下载的/ lib目录的mysqlC++ - 连接器。 /usr/lib64/mysql - >包含libmysqlclient – 2010-08-10 15:38:51

8

尝试加入-lmysqlcppconn到链接器选项。我回答只是为了有一个答案(即使这是2年前问:D)

+0

解决了我,thx! – 2013-03-28 01:32:59

+0

@Gerald:'g ++ -o test -Iinclude -Llib -L ​​/ usr/mysql -lmysqlcppconn temp.cpp'或'g ++ -o test -Iinclude -Llib -L ​​/ usr/mysql temp.cpp -lmysqlcppconn'哪一个是正确?两者都给出了错误。第一个给出了与这个问题相同的结果,第二个给出了libmysqlcppconn.so的一些错误 – Catty 2013-09-06 14:33:58