日期:2014-05-16 浏览次数:20851 次
下面只是为了做个实验,我只调用一个mysql_init()函数,
第一次编译出现下面的错
[root@heiying database]# gcc mysqll.c -o mysql
/tmp/ccCwjhW9.o: In function `main':
mysqll.c:(.text+0x11): undefined reference to `mysql_init'
collect2: ld 返回 1
第二次编译出下面的错
[root@heiying database]# gcc mysqll.c -o mysql -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld 返回 1
[root@heiying database]# 
(说明:我在linux下是有装mysql-devel的,在目录 /usr/include/mysql/下 mysql.h这个文件确实存在,但在编译时为什么会说 undefined reference to `mysql_init??  当我把mysql.h拷贝到编译目录下 并修改C程序中的包含文件#include <mysql/mysql.h>为  #include "mysql.h",结果没有提示undefined reference to `mysql_init,但提示没有包含其他文件,我这样做只想说明一下为mysql.h有没有没include进c程序中,从这个实验结果来看好像无法包含mysql.h这个头文件进C程序,我感到很奇怪,请高手指教)
#include <mysql/mysql.h>
#include <stdio.h>
int main()
{
    MYSQL *mysql;
    MYSQL_RES *rew;
    MYSQL_ROW row;
    mysql_init(mysql);
    return 0;
}