参考:http://blog.csdn.net/this_capslock/article/details/16943465
想要在C++中调用mysql库函数,需要#include <mysql.h>
所以需要在eclipse中加上对mysql.h的路径
项目->属性->C/C++Build -> settings -> gcc c++ complier -> includes -> include paths
添加两个路径:/usr/lib/mysql;/usr/include/mysql
对于64位的mysql:/usr/lib64/mysql ; /usr/include/mysql
要让eclipse工具能正确实现编译指令:
g++ -o test test.c -lmysqlclient -lm -I/usr/include/msqyl -L/usr/lib64/mysql
还需要添加对 -lmysqlclient -lm两个参数:
项目->属性->C/C++Build -> settings -> gcc c++ linker-> libraries
在libraries(l) 中添加两个参数mysqlclient和m
从这里可以看出gcc l参数的作用。其中m是包含了数学方法 。
在libraryies search path (L)中添加/usr/lib/mysql
到这个地址去找libmysqlclient.a这个文件。
至此已经配置完毕,可以在Eclipse中调用mysql.h中的库函数,同时编译和运行程序也成功通过。
测试代码:
#include <mysql.h>
#include <stdio.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "";
char *database = "mysql";
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
return 1;
}
/* send SQL query */
if (mysql_query(conn, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(conn));
return 1;
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s \n", row[0]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}