读书人

mysql c api 如何设置才能用呢

发布时间: 2012-02-14 19:19:19 作者: rapoo

mysql c api 怎么设置才能用呢?
一段简单的程序,网上拷的,但无法编译,
FC5的机子装了mysql5,我在FC5的安装盘找到了所有mysql*rpm,全部装上去了,
可编译一个简单的程序时出现下面的错误,不知还需装些什么?
#gcc test.c

test.c: 在函数 ‘main’ 中:
test.c:19: 警告:隐式声明与内建函数 ‘exit’ 不兼容
/tmp/ccOfwWMG.o: In function `main ':test.c:(.text+0x37):对‘mysql_init’未定义的 引用
:test.c:(.text+0x63):对‘mysql_close’未定义的引用
collect2: ld 返回 1


代码如下:

#include <stdio.h>
#include "mysql/mysql.h "

int main(int argc, char **argv)
{

MYSQL mysql;/* variation #1*/

printf( "\n\n\tCopyright Aftab Jahan Subedar\n\t\thttp://www.geocities.com/jahan.geo ");
printf( "\n\t\tjahan@geocities.com \n\t\tPhone:+88027519050\n ");

if(mysql_init(&mysql)==NULL)
{
printf( "\nFailed to initate MySQL connection ");
exit(1);
}

/*now you can call any MySQL API function you like*/



mysql_close(&mysql);

}

[解决办法]
你这样编译试试:
gcc -lmysqlclient test.c
[解决办法]
可能是没有链接库的原因了
[解决办法]
gcc后面加 `mysql_config --.......`自己去看吧
[解决办法]
没办法的,不能说什么板块都有很多高手;
我们不懂的只能一起讨论,一起进步,总是希望高手,那高手当初的时候怎么办啊
所以我觉得无论是自己解决问题了,还是别人帮忙解决了,最好能把解决方式贴出来,这样别人就能少走弯路。
[解决办法]
应当把几个mySQL的静态库链接上,gcc 里面要加上-lib选项.
[解决办法]
主要看libmysqlclient.a在那个目录下,例如我的在/usr/local/mysql/lib下,相应的include 在/usr/local/mysql/include下,那么makefile可以这样写:

CC=gcc
INCLUDES = -I/usr/local/mysql/include
LIBS = -L/usr/local/mysql/lib -lmysqlclient -lz

example:example.o
CC -o -g example example.o $(LIBS)

example.o:example.c
CC $(INCLUDES) -c -g example.c

这样写了以后,源代码的 <mysql/mysql.h> 要改为 <mysql.h> ,因为在makefile中已经指明了mysql.h的位置了。

读书人网 >UNIXLINUX

热点推荐