皮皮网

【FTPClient java源码】【spring 源码 添加】【阅读 redhat 源码】idv源码

2024-11-23 13:23:58 来源:极办公小程序源码

1.mysql-odbc编译

idv源码

mysql-odbc编译

       近期工作中需要编译mysql-odbc的驱动库,以下为遇到的问题及解决方法。

       首先,参照官网指南进行操作:MySQL :: MySQL Connector/ODBC Developer Guide :: 4.5 Building Connector/ODBC from a Source Distribution on Unix。

       由于之前未接触过,对基本概念不甚了解。FTPClient java源码

       首先,需要配置好依赖项目,如libmysqlclient.a。系统配置中需包含iodb或unixODBC。指南中已明确说明。

       为使用静态库,我下载了mysql-8.0.编译的spring 源码 添加libmysqlclient库。

       解压.src.rpm文件:命令 rpm2cpio ***.src.rpm | cpio -idv。

       解压后,会有对应版本的mysql-8.0..tar.gz。注意,这里有boost版本,编译时可能需要指定boost路径。阅读 redhat 源码创建build目录,进入build目录后进行以下操作:

       cmake -DWITH_BOOST="/root/lq_workspace/mysql-5.7./boost" ../

       然后执行make和make install。注意mysql的安装路径,以便后续编译odbc时使用。例如,我将其放置在/usr/local/mysql/lib中。量化抄底源码

       接下来,开始编译ODBC:

       1. 下载源码,注意编译版本所需的gcc和g++版本。我选择较低版本,非最新版本。

       2. 解压后,时钟效果源码创建build路径,开始编译。注意以下参数:

       cmake ../ -DWITH_UNIXODBC=1 -DDISABLE_GUI=1 -DMYSQL_DIR="/usr/local/mysql/" -DMYSQLCLIENT_STATIC_LINKING=true

       编译时出现定义冲突,我将CMakeLists.txt中不需要的部分屏蔽。

       cmake时-DWITH_UNIXODBC=1指定使用unixOdbc,默认为iodbc,需在系统上先配置。

       -DMYSQL_DIR="/usr/local/mysql/"表示安装libmysqlclient的路径。

       -DMYSQLCLIENT_STATIC_LINKING=true连接静态库,默认为动态库。

       构建完成后,提示连接libmysqlclient_r.a,低版本区分多线程支持,高版本无需区分。为连接,创建软连接:

       ln -s /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/libmysqlclient_r.a

       准备完成后,执行make生成所需odbc驱动。

       配置mysqlodbc后,即可连接mysql。

       总结:编译源码时,会遇到各种版本依赖问题,需逐一排查。同时,编译时的编译可选项作用也不容忽视。