【Linux笔记】编mysql库

说明当前编译条件:使用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 

执行成功即可

相关推荐
AA陈超2 分钟前
ASC学习笔记0022:在不打算修改属性集时访问生成的属性集
c++·笔记·学习·ue5·虚幻引擎·unreal engine
HalvmånEver8 分钟前
Linux:基础开发工具(四)
linux·运维·服务器·开发语言·学习·makefile
王哈哈^_^15 分钟前
Ubuntu系统CUDA完整安装指南
linux·运维·服务器·pytorch·ubuntu
Bdygsl29 分钟前
Linux小程序(1)—— 简单进度条
linux·运维·服务器
cccyi733 分钟前
Linux 序列化技术、自定义协议实现及守护进程
linux·serialization·daemon
01100001乄夵40 分钟前
第六课:仿真进阶与调试技巧
经验分享·笔记·学习方法
adnyting42 分钟前
【Linux日新月异(十)】CentOS 7 文件系统结构深度解剖:从根到叶的完整指南
linux·运维·centos
装不满的克莱因瓶1 小时前
【Java架构师体系课 | MySQL篇】③ Explain执行计划详解
java·数据库·mysql·架构·优化·索引·explain
kanimito1 小时前
大语言模型入门指南:从科普到实战的技术笔记(2)
人工智能·笔记·语言模型
Bin二叉1 小时前
南京大学cpp复习——面向对象第一部分(构造函数,拷贝构造函数,析构函数,移动构造函数,友元)
c++·笔记·学习