找不到libmysqlclient_18 我试图用C++和MySQLConnector连接MySQL,但是每次调用连接器时,我都会得到“未定义的引用”错误。

找不到libmysqlclient_18 我试图用C++和MySQLConnector连接MySQL,但是每次调用连接器时,我都会得到“未定义的引用”错误。,c++,mysql,database,linux,eclipse,C++,Mysql,Database,Linux,Eclipse,例如: /usr/lib/libmysqlcppconn.so:对“mysql\u stmt”的未定义引用_execute@libmysqlclient_18" 我的操作系统是Ubuntu 13.04 VM,我使用Eclipse CDT,并安装了以下软件包: sudo apt-get mysql-client sudo apt-get mysql-server sudo apt-get mysql-client sudo apt-get libmysqlclient-dev 我想知道libs(

例如:

/usr/lib/libmysqlcppconn.so:对“mysql\u stmt”的未定义引用_execute@libmysqlclient_18"

我的操作系统是Ubuntu 13.04 VM,我使用Eclipse CDT,并安装了以下软件包:

sudo apt-get mysql-client
sudo apt-get mysql-server
sudo apt-get mysql-client
sudo apt-get libmysqlclient-dev
我想知道libs(libmysqlclient,…)是否在/usr/lib/x86_64-linux-gnu文件夹中/ 而不是像网上常见的那样在/user/local/mysql/lib中。这有什么区别吗

我还从Oracle下载了C++连接器(二进制文件),并将LIB目录复制到/UR/LIB,并将目录包含到/UR/IORE,但仍然得到了未定义的引用错误。 我以获得以下编译命令的方式配置了Eclipse:

g++ -L/usr/lib -L/usr/lib/x86_64-linux-gnu -pthread -o "Proj"  ./Client.o -lmysqlcppconn -lmysqlclient -lz -lm -ldl

任何想法?

可能是你安装的MySQL客户端版本与C++的Oracle库不兼容。什么是获得2个兼容版本的正确方法?我安装了上面的软件包,并从“”下载了适用于Debian Linux的连接器(也不适用于Linux通用版)“Debian Linux 6.0(x86,64位),压缩TAR存档”。我认为未定义的引用应该在libmysqlclient_18中——libmysqlclient.so.8.0.0文件位于文件夹“/usr/lib/x86_64-linux-gnu/”中。如果您查看该站点,它建议从源代码构建以保持兼容性。最有可能的是,你安装的ubuntu上的MySQL比Debian6附带的MySQL更新。Ubuntu在软件包版本上通常“领先”于Debian。您可以在ubuntu中查找该库的软件包,也可以从下载菜单中选择“Source”,并根据您使用的MySQL版本在您的系统上构建它。