关于连接mysql数据库的编译错误
刚学在linux下c编程
很简单的一个程序
#include <stdio.h>;
#include <mysql.h>;
#define HOSTNAME NULL
#define USERNAME NULL
#define PASSWORD NULL
#define DATABASE NULL
MYSQL* con;
int main(int argc, char *argv[])
{
con = mysql_init(NULL);
mysql_real_connect(
con,
HOSTNAME,
USERNAME,
PASSWORD,
DATABASE,
0,
NULL,
0);
mysql_close(con);
return 0;
}
编译后出现如下错误
[root@localhost test]# gcc -o Test10 Test10.c -I/usr/include/mysql -L/usr/lib/mysql
Test10.o: In function `main':
Test10.o(.text+0x16): undefined reference to `mysql_init'
Test10.o(.text+0x37): undefined reference to `mysql_real_connect'
Test10.o(.text+0x4: undefined reference to `mysql_close'
collect2: ld returned 1 exit status
而加上 -lmysqlclient 就可以了, 这个-lmysqlclient是什么东西,还有多线程编译里也要加上-lpthread,这些参数代表了什么意思,从哪里可以找到,请问哪位朋友知道,指点一二。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
-lmysqlclient是引用mysql的运行库,你所使用的诸如'mysql_init'函数的定义都放在里面.
-lpthread是引用POSIX的线程库,你在程序中调用的线程函数的定义都放在它里面
请问一下,mysqlclient,pthread这些是在哪里定义的,我在哪能看见他们的定义。
使用ar -vt libmysqlclient.a,会列出库中包含的.o文件,依据.o文件在mysql源码包中查找相应.c文件.