Chinaunix

标题: c连接mysql问题 [打印本页]

作者: lzj019    时间: 2007-11-11 22:42
标题: c连接mysql问题
简化源码:
#include <stdio.h>
#include <string.h>
#include <mysql/mysql.h>

MYSQL mysql;

mysql_init(&mysql);

错误:
#gcc  -c mysql.c -o mysql
mysql.c:7: error: syntax error before '&' token
mysql.c:7: error: conflicting types for 'mysql_init'
/usr/include/mysql/mysql.h:386: error: previous declaration of 'mysql_init' was here
mysql.c:7: error: conflicting types for 'mysql_init'
/usr/include/mysql/mysql.h:386: error: previous declaration of 'mysql_init' was here
mysql.c:7: warning: data definition has no type or storage class

请问是啥问题 谢
作者: janusle    时间: 2007-11-11 23:34
你最好贴出所有代码,你给的这些信息似乎看不出问题在哪里。
作者: yecheng_110    时间: 2007-11-12 11:05
gcc  -c mysql.c -o mysql -I/path/to/mysql/include -L/path/to/mysql/lib -lmysqlclient
作者: ruoyisiyu    时间: 2007-11-12 11:27
原帖由 yecheng_110 于 2007-11-12 11:05 发表
gcc  -c mysql.c -o mysql -I/path/to/mysql/include -L/path/to/mysql/lib -lmysqlclient

这个是c api连接问题得基本解决方法
(这一段引自http://blog.chinaunix.net/u1/35100/showart_315325.html



MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.

$ mysql_config --libs
输出:

-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
输出:

-I/usr/include/mysql -g -pipe -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2