【问题标题】:undefined reference to 'get_driver_instance'未定义对“get_driver_instance”的引用
【发布时间】:2011-03-27 21:36:14
【问题描述】:

在构建来自http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1.html 的最简单示例时,我得到了“对'get_driver_instance' 的未定义引用”。它在我的本地机器上构建和运行良好,但它不会在服务器上构建 - 似乎是链接 mysql 库问题。
这是我的构建命令:
g++ -o test -Iinclude -Llib -L/usr/lib64/mysql main.cpp

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

【问题讨论】:

    标签: c++ mysql-connector


    【解决方案1】:

    尝试将-lmysqlcppconn 添加到您的链接器选项中。我回答只是为了得到答案(尽管这是在 2 年前提出的:D)

    【讨论】:

    • @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 的错误
    【解决方案2】:

    尝试在命令中添加'-lmysqlclient',即:g++ -o test -Iinclude -Llib -L/usr/lib64/mysql -lmysqlclient main.cpp

    【讨论】:

    • 嗨 shuvalov,试过但没有成功。好像我遇到了 mysql-connector/c++ 头文件的链接问题。这就是我的文件夹的结构:/include --> 包含 /cppconn 和 mysql_driver.h 和 mysql_connection.h。 /lib --> 包含下载的 mysqlc++-connector 的 /lib 目录。 /usr/lib64/mysql --> 包含 libmysqlclient
    猜你喜欢
    • 2011-04-21
    • 2011-11-22
    • 2013-04-06
    • 2020-05-21
    • 2022-01-22
    • 2016-04-04
    • 2015-11-03
    • 2011-08-11
    • 2019-07-22
    相关资源
    最近更新 更多