mysql connector c++源码编译

在官网下载的mysql connector c++二进制文件使用时,调用setSchema函数的时候,抛出异常std::exception bad alloc。查询网友发帖,说应该如果使用的编译器以及boost库的版本与二进制文件不一致会出现抛出异常的情况。最好的方法是,用自己的环境源码编译。

 

环境:

debian9.6x64

gcc6.3.0

cmake3.7.2

 

mysql.com官网下载C连接库

mysql connector c 6.1.11

mysql.com官网下载的C++的源码

mysql connector c++ 1.1.12

 

connector C++版本是对connector C的封装,底层依然调用connector C的库,所以在编译的时候需要连接connector C的库。

下面是具体步骤:

1.解压connector c++源码,在源码目录外新建build目录,根据官网介绍

https://dev.mysql.com/doc/connector-cpp/1.1/en/connector-cpp-source-configuration-options.html

mysql connector c++源码编译_第1张图片

进入build目录,执行命令 (需要根据自己环境的地址进行修改)

$cmake /home/ding/download/mysql-connector-c++-1.1.12 -DBOOST_ROOT=/usr/include/boost \
-DCMAKE_ENABLE_C++11=1 \
-DMYSQL_INCLUDE_DIR=/home/ding/forge_cpp/LinuxProject/lib/mysql-connector-c/include \
-DMYSQL_LIB_DIR=/home/ding/forge_cpp/LinuxProject/lib/mysql-connector-c/lib \
-DCMAKE_INSTALL_PREFIX=/home/ding/forge_cpp/mysql-cppconn
$make
$make install

注意点:

  • connector c++库需要boost库支持

  • 最好打开C++11支持开关

  • 设置本地connector c库的头文件以及库文件地址

  • 设置生成后的库文件以及头文件的install地址

 

如果你运气好就会编译成功。

mysql connector c++源码编译_第2张图片

mysql connector c++源码编译_第3张图片

mysql connector c++源码编译_第4张图片

2.到install指定的目录就可以找到生成的库文件以及拷贝过来的头文件。就可以使用了。

mysql connector c++源码编译_第5张图片

下面是我的CMakeLists.txt文件中调用库的片段

mysql connector c++源码编译_第6张图片

 

我的公众号:进阶程序员

分享技术文章以及有趣的事

欢迎大家关注

 

你可能感兴趣的:(mysql)