error 1:
mysql.h: No such file or directory
解决:
apt-get install libmysqlclient-dev
find /usr/ -name ‘mysql.h’
/usr/include/mysql/mysql.h
error 2:
/tmp/ccDay78L.o: In function main':
mysql_init’
***.c:(.text+0x6ab): undefined reference to
*.c:(.text+0x6f2): undefined reference to `mysql_real_connect’
collect2: error: ld returned 1 exit status
解决:
出现该错误的原因是因为编译器找不到mysql_init,mysql_close等的具体实现.虽然我们包括了正确的头文件,但是我们在编译的时候还是要连接确定的库.对于一些常用的函数的实现,gcc编译器会自动去连接一些常用库,这样我们就没有必要自己去指定了,如:printf函数.在本程序中要通过-L选项包含库文件的路径:
gcc -o conn conn.c -L /usr/local/mysql/lib/*.a -lz
或者:
命令行后加入 -lmysqlclient
例如对mysqlconn.c编译
gcc mysqlconn.c -o conn -l mysqlclient