免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1150 | 回复: 3
打印 上一主题 下一主题

关于连接mysql数据库的编译错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-15 10:24 |只看该作者 |倒序浏览
刚学在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,这些参数代表了什么意思,从哪里可以找到,请问哪位朋友知道,指点一二。

论坛徽章:
0
2 [报告]
发表于 2003-12-15 11:17 |只看该作者

关于连接mysql数据库的编译错误

-lmysqlclient是引用mysql的运行库,你所使用的诸如'mysql_init'函数的定义都放在里面.
-lpthread是引用POSIX的线程库,你在程序中调用的线程函数的定义都放在它里面

论坛徽章:
0
3 [报告]
发表于 2003-12-15 14:32 |只看该作者

关于连接mysql数据库的编译错误

原帖由 "xa_butterfly" 发表:
-lmysqlclient是引用mysql的运行库,你所使用的诸如'mysql_init'函数的定义都放在里面.
-lpthread是引用POSIX的线程库,你在程序中调用的线程函数的定义都放在它里面


请问一下,mysqlclient,pthread这些是在哪里定义的,我在哪能看见他们的定义。

论坛徽章:
0
4 [报告]
发表于 2003-12-16 15:27 |只看该作者

关于连接mysql数据库的编译错误

使用ar -vt libmysqlclient.a,会列出库中包含的.o文件,依据.o文件在mysql源码包中查找相应.c文件.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP