日期:2014-05-16  浏览次数:20746 次

linux 如何编译 mysql 的C程序 ,求高手解答
C/C++ code

下面只是为了做个实验,我只调用一个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;
}



------解决方案--------------------
lz厉害 没玩过mysql源代码