说明当前编译条件:使用cmake 进行编译< 当前编译系统为Ubuntu 16.04 虚拟机上面使用>
一、 cmake 库 【 cmake version 3.16.3 】
二、 openssl 库 【 libopenssl-1.1.1K 】
三、mysql 库 【mysql-5.7.36 】
四、boost 库 【boost_1_59_0 】
一、安装cmake
1.1、方式一 ,使用 sudo apt-get install cmake 安装
1.2、方式二, 安装包安装
下载位置: https://cmake.org/download
放到虚拟机里面、然后解压、存在一个脚本 cmake-${version}-Linux-x86_64.sh
直接执行放在即可安装到系统库里面
或者可以指定安装路径,避免和自身的CMAKE 冲突
./ cmake-${version}-Linux-x86_64.sh --prefix=/opt/cmake
二、进行MYSQL 库进行编译
2.1、将下载的mysql 库 解压
2.2 、将下载的openssl 压缩包解压
2.3、将下载的boost压缩包解压
2.4、 将解压完的openssl和boost 文件夹 ,移动进去mysql 文件里面
三、进行cmake 编译
3.1、cmake 编译, 要注意的是,cmake 后面的指令带一个一个点,表明当前路径
cmake . -DCMAKE_INSTALL_PREFIX=${PWD}/__install \
-DWITH_SSL=${PWD}/openss1_1_1_1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=${PWD}/boost_1_59_0
// - DCMAKE_INSTALL_PREFIX 表明生成的静态库的目录路径
// -DWITH_SSL 表明当前OPENSSL 路径
// -DDOWNLOAD_BOOST 开启boost
// -DWITH_BOOST 表明当前boost 路径
3.2、编译
make
// 注意、不建议使用多线程编译,也就是不要带 -j 32 等参数 多线程编译有好大几率编译出错
3.3、打包
make install
四、连接mysql 库测试
去到【 三、进行cmake 编译】 步骤、DCMAKE_INSTALL_PREFIX 指定的位置里面,
然后创建一个main.c 文件
c
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <mysql.h>
int main( int argc ,char& argv )
{
MYSQL* fp = NULL;
fp = mysql_init( NULL );
if( fp == NULL )
{
printf(" create mysql failed \r\n");
return 0;
}
mysql_close( fp );
return 0;
}
执行一下指令进行编译
c
// 编译 当前要注意的是、 -lstdc++ -ldl -lpthread 这三个软连接库,一定要放在mysql 库后面
gcc -o demo main.c -I./include/ ./lib/libmysqlclient.a ./lib/libmysqld.a ./lib/libmysqlservices.a -lstdc++ -ldl -lpthread
// 执行
./demo
执行成功即可