交叉编译mysql客户端libmysql

交叉编译mysql客户端libmysql

确定linux安装好了cmake,
ubuntu下安装cmake: sudo apt-get install cmake

设在好arm-linux
export PATH=/usr/local/arm/4.3.2/bin:$PATH

到mysql官网上下载mysql connector/c的源代码包

tar xvzf mysql-connector-c-6.0.2.tar.gz

修改CMakeLists.txt文件 添加

SET(CMAKE_C_COMPILER "arm-linux-gcc")

然后创建myconnector文件夹,
mkdir myconnector
运行cmake命令,设在编译后生成的文件路径
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=myconnector
make
make install


编写mysqltest.c文件
#include <stdio.h> 
#include <stdlib.h> 
#include "mysql.h"   
 
int main(void) 

    const char *host = "59.71.72.133"; 
    const char *user = "root"; 
    const char *pass = ""; 
    const char *db   = "mysql"; 
    /* 定义mysql变量 */ 
    MYSQL mysql; 
    MYSQL_RES *rs; 
    MYSQL_ROW row; 
    mysql_init(&mysql); /* 初始化 */ 
    /* 连接数据库 */ 
    if (!mysql_real_connect(&mysql, host, user, pass, db, 0, NULL, 0)) 
    {  
        printf("数据库连接失败: %s\n", mysql_error(&mysql)); 
    } else { 
        printf("数据库连接成功!\n"); 
    } 
    char *sql = "select host,user from user order by rand()"; 
    if (mysql_query(&mysql, sql)!=0)  
    { /* 查询 */ 
        printf( "%s", mysql_errno(&mysql), mysql_error(&mysql)); 
    } 
    rs = mysql_store_result(&mysql); /* 获取查询结果 */ 
    while ((row = mysql_fetch_row(rs)))  
    {    /* 获取每一行记录 */ 
        printf( "%s---%s", row[0], row[1]); 
    } 
    mysql_free_result(rs); /* 释放结果集 */ 
    mysql_close(&mysql); /* 关闭连接 */ 
    return 1; 
}

把编译好的myconnector文件夹下的include和lib文件夹放到mysqltest.c同一目录下
arm-linux-gcc -L./lib  -I./include -o mysqltest  mysqltest.c   -lmysqlclient
这样就生成好了目标文件。
当然我们可以把myconnector文件夹下的include和lib文件夹放到arm-linux编译器的相应目录下,这样就可以不用每次都设置编译参数了
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值