1, ${mysql_home}/include/libmySQL.def文件如果有直接用
2, 否則下載pexports工具,執(zhí)行pexprots libmySQL.dll> libmySQL.def(libmySQL.dll在${mysql_home}/bin目錄下一般會(huì)有)
二,轉(zhuǎn)換成靜態(tài)庫
dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k
三,配置Eclipse(靜態(tài)庫和動(dòng)態(tài)庫加法都是-L${DIR} -l${libname},但誰的優(yōu)先級(jí)高呢?)
1, 加上庫目錄,如"${workspace_loc:/hello_mysql/libs}"
2, 加上libmysql.a的庫名: mysql
3, 構(gòu)建,報(bào)錯(cuò): #ff0000 reference to `mysql_real_connect@32'之類的錯(cuò)
4, 修改def文件,將mysql_real_connect改成mysql_real_connect@32,其它錯(cuò)誤同理,并重新生成靜態(tài)庫
5, 重新構(gòu)建完成
四,示例程序(只須修改連接信息及表名)
#include <stdio.h>
/*下面這一行一定要加上*/
#include <my_global.h>
#include <mysql.h>
int main() {
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int numrows, numcols, c;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql, "localhost", "opencart", "opencart", "opencart", 0, NULL, 0)) {
fprintf(stderr,"Failed to connect to database: Error %d:%s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
char query[] = "SELECT * FROM product";
if (mysql_query(&mysql, query))
{
fprintf(stderr,"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
result = mysql_use_result(&mysql);
if (!result) {
fprintf(stderr,"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
numcols = mysql_num_fields(result);
while (row = mysql_fetch_row(result)) {
for (c = 0; c < numcols; c++) {
printf("%s\t", row[c]);
}
printf("\n");
}
}
/*下面這一行一定要加上*/
#include <my_global.h>
#include <mysql.h>
int main() {
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int numrows, numcols, c;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql, "localhost", "opencart", "opencart", "opencart", 0, NULL, 0)) {
fprintf(stderr,"Failed to connect to database: Error %d:%s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
char query[] = "SELECT * FROM product";
if (mysql_query(&mysql, query))
{
fprintf(stderr,"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
result = mysql_use_result(&mysql);
if (!result) {
fprintf(stderr,"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
}
numcols = mysql_num_fields(result);
while (row = mysql_fetch_row(result)) {
for (c = 0; c < numcols; c++) {
printf("%s\t", row[c]);
}
printf("\n");
}
}