QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1343|回复: 8

c++与mysql接口问题

[复制链接]
发表于 2005-12-6 00:11:27 | 显示全部楼层 |阅读模式
现在写个与数据库有联系的程序,选择mysql。linux下的
1.首先尝试了mysql.h,一个简单的连接数据库都有问题。编译都不能通过,源码如下
[code:1]#include <iostream>
#include <mysql/mysql.h>

int main ( int argc, char ** argv )
{
    MYSQL my_connection;
    int res;

    mysql_init ( &my_connection );
    if ( mysql_real_connect ( &my_connection, "localhost", "user", "passwd", "database", 0, NULL, 0 ) )
            return 1;
}
[/code:1]
2.接着尝试mysql++,同样是错误
两个的错误信息都是:
[code:1]c.cpp:(.text+0x129): undefined reference to `mysql_init'
c.cpp:(.text+0x16f): undefined reference to `mysql_real_connect'
collect2: ld returned 1 exit status[/code:1]
 楼主| 发表于 2005-12-6 00:12:16 | 显示全部楼层
编译用的是:
g++ -I /usr/include/mysql -L /usr/lib/mysql -l mysqlclient
回复

使用道具 举报

发表于 2005-12-6 09:23:10 | 显示全部楼层
g++ xxx.cpp ` mysql_config --libs --cflags`
回复

使用道具 举报

 楼主| 发表于 2005-12-6 12:16:11 | 显示全部楼层
谢谢,比较诡异的问题:cpp文件放在最后就不行
[code:1]
[lj@coco tmp]$ g++ c.cpp `mysql_config --libs --cflags`
[lj@coco tmp]$ g++ `mysql_config --libs --cflags` c.cpp
/tmp/cc7LILgJ.o: In function `main':
/tmp/c.cpp:9: undefined reference to `mysql_init'
/tmp/c.cpp:10: undefined reference to `mysql_real_connect'
collect2: ld returned 1 exit status
[/code:1]
回复

使用道具 举报

发表于 2005-12-6 12:26:38 | 显示全部楼层
可能是因为-L -I -l参数只对其前面的源文件负责。
回复

使用道具 举报

 楼主| 发表于 2005-12-6 13:00:14 | 显示全部楼层
呵呵,可是如果用gtk的时候`pkg-config gtk+-2.0 --libs --cflags`放在前后都是一样的-_-
再请教牛人一个问题:
下面是mysql.h中关于mysql_query的声明
[code:1]int                STDCALL mysql_query(MYSQL *mysql, const char *q);
[/code:1]
我想这么用:
[code:1] if ( mysql_real_connect ( &my_connection, "localhost", "user", "passwd", "database", 0, NULL, 0 ) )
         {
                   int res = mysql_query ( &my_connection, "SELECT * FROM staff" );
                   std::cout<<res;
         }
[/code:1]
发现res都是0
回复

使用道具 举报

 楼主| 发表于 2005-12-6 13:06:47 | 显示全部楼层
前提:数据库名,table名都是正确的。而且staff这个table中有一个record
回复

使用道具 举报

 楼主| 发表于 2005-12-6 13:26:44 | 显示全部楼层
搞定了,用了另一个方法。
回复

使用道具 举报

发表于 2005-12-7 10:13:58 | 显示全部楼层
mysql++ 要方便很多。网址是http://tangentsoft.net/mysql++/ 。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 02:16 , Processed in 0.051371 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表