网上的资料很多,但实际编译的时候会出现一些问题,比如说找不到mysql头文件。在这里把解决方案记录一下,以备不时之需。
以一个简单的连接数据库为例:
#include <stdlib.h>
#include <stdio.h>
#include "mysql.h"
int main(int argc , char* argv[]){
MYSQL * conn_ptr;
conn_ptr = mysql_init(NULL);
if( !conn_ptr ){
fprintf(stderr,"mysql init failed\n");
return EXIT_FAILURE;
}
conn_ptr =mysql_real_connect(conn_ptr,"localhost","root","root","foo",0,NULL,0);
if( conn_ptr ){
printf("connection success \n");
}else{
printf("connection failed \n");
}
mysql_close(conn_ptr);
return EXIT_SUCCESS;
}
写好以后,用 gcc -0 mysqldemo mydqldemo.c 进行编译,发现很正常的报错, 说mysql.h 找不到。
这里需要在编译的时候引入mysql.h的路径
gcc -o mysqldemo mysqlDemo.c -I/usr/include/mysql/ 我的在这个路径下有mysql.h这个头文件,其他的电脑可能情况不大一样。
回车发现还是会报错。
于是,我在网上搜索到了解决方案, 在上面的命令后补上: -lmysqlclient
编译通过。
运行:
我推测是因为虽然引入了头文件,但是编译器并没有找到方法的具体实现,具体情况我等日后查清楚了再补全。