用MySQL的C API开发程序时无法链接成功的一个小问题
操作系统WinXP, 编译器Cygwin, MySQL没有安装
Cygwin安装成功
下载了MySQL的最新版5.1.5-alpha for Linux X86版,是一个.tar.tar文件。我在Cygwin下tar解压缩之后,就在解压缩的目录下发现了include和lib目录。
于是我直接在Cygwin的目录/usr/include和/usr/lib下都建了mysql目录。
然后用ln -s命令把MySQL下的lib和include目录下的文件链接到/usr/include/mysql和/usr/lib/mysql目录下
然后写了简单的程序:
#include <stdio.h>
#include <mysql/mysql.h>
#define MYSQL_HOST NULL
#define MYSQL_DATABASE NULL
#define MYSQL_USER NULL
#define MYSQL_PWD NULL
#define MYSQL_MYPORT 0
int main(int agrc, char *argv[])
{
MYSQL mysql;
mysql_init(&mysql);
if(!mysql_real_conn(&mysql, MYSQL_HOST,
MYSQL_USER,
MYSQL_PWD,
MYSQL_DATABASE,
MYSQL_MYPORT, NULL, 0)){
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
exit(0);
}
printf("Connect to MySQL database SUCCESS!\n");
mysql_close(&mysql);
exit(0);
}
使用以下命令编译:
gcc -g mysql.c -L/usr/lib/mysql -lmysqlclient
出现连接错误:
/home/admin/C/MySQL.c:13: undefined reference to `_mysql_init'
/home/admin/C/MySQL.c:14: undefined reference to `_mysql_real_conn'
/home/admin/C/MySQL.c:19: undefined reference to `_mysql_error'
/home/admin/C/MySQL.c:24: undefined reference to `_mysql_close'
请高手帮我分析分析,谢谢!