交叉编译mysql客户端libmysql
生活随笔
收集整理的這篇文章主要介紹了
交叉编译mysql客户端libmysql
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csdn.net/lilongherolilong/article/details/7521736
交叉編譯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_CXX_COMPILER "arm-linux-g++")
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編譯器的相應目錄下,這樣就可以不用每次都設置編譯參數了
總結
以上是生活随笔為你收集整理的交叉编译mysql客户端libmysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux通过c语言编程访问远程mysq
- 下一篇: nfs:server is not re