QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1215|回复: 11

急!:mysql c API 编程问题。

[复制链接]
发表于 2003-11-28 17:56:32 | 显示全部楼层 |阅读模式
用mysql c API 编程,编译时老是出现mysql c 函数没有定义。这证明没联上mysql.
我已经在我的程序中包括进了头文件mysql.h,它在/usr/include 下,我的库文件libmysqlclient.so.10在/usr/lib下。
我是否还要设置一些参数(环境变量),我该在linux下如何设置?
发表于 2003-11-28 18:44:51 | 显示全部楼层
环境变量?
我好象没设置阿

试试这个
g++ -o sql -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm  sql.c
回复

使用道具 举报

 楼主| 发表于 2003-11-29 14:15:38 | 显示全部楼层
谢谢楼上兄弟的答复.
不过我的这个程序是一个项目中的一个,如果我用你的那种方法,就会出现另外一个链接库出现错误。因为整个项目还用到了pwlib库,openh323协议。我的这个程序只是一个加在其中而已。
能否用make 编译?有什么办法解决?
回复

使用道具 举报

发表于 2003-11-29 15:49:03 | 显示全部楼层
不太明白你的意思

你在makefile里 加上 -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm
其余照旧阿
还是编译不通过?

pwlib库,openh323协议  会影响到mysql吗?

先自己编一段代码试试
如果编译不过 就是mysql的问题
如果编译过了 就是那个项目的问题

这个看过吗  http://www.mysql.com/doc/en/C.html
回复

使用道具 举报

 楼主| 发表于 2003-12-1 17:28:05 | 显示全部楼层
我按照您的意思对makefile文件做了一些修改:
修改后的文件如下:
ifndef NO_MYSQL
ifndef MYSQLDIR
ifneq (,$(wildcard /usr/include/mysql/mysql.h))
MYSQLDIR := /usr/include/mysql
export MYSQLDIR
endif
endif

ifdef MYSQLDIR
ifneq (,$(wildcard $(MYSQLDIR)))
STDCCFLAGS_stub := $(STDCCFLAGS)
STDCCFLAGS      = -DHAS_MYSQL=1 -I$(MYSQLDIR) $(STDCCFLAGS_stub)
#LDFLAGS        += -L(usr/lib/mysql)/lib
ENDLDLIBS       += -lmysqlclient
HAS_MYSQL       = 1
endif
但是编译后还有错误:
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
请问楼上兄弟该怎办?(我的库文件在/usr/lib/msyql/lib下,库文件名为libmysqlclient.so.10  )
回复

使用道具 举报

发表于 2003-12-1 17:48:28 | 显示全部楼层
看了你的makefile  我也不知道最后用的是啥语句编译
[code:1]
#include <mysql/mysql.h>
#include <stdio.h>
                                                                                
int main(){
MYSQL mysql;
mysql_init(&mysql);
return 1;
}

gcc -o sql -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm a.c
[/code:1]
编译试试   成功的话那mysql肯定没问题
回复

使用道具 举报

 楼主| 发表于 2003-12-2 11:10:56 | 显示全部楼层
用gcc编译还是出现:
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status

那我否重新要编译mysql了?
回复

使用道具 举报

 楼主| 发表于 2003-12-2 11:13:50 | 显示全部楼层
用gcc编译还是出现:
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status

那我要重新要编译mysql了?
回复

使用道具 举报

发表于 2003-12-2 12:21:25 | 显示全部楼层

别告诉我你没有安装 mysql-devel
回复

使用道具 举报

 楼主| 发表于 2003-12-11 16:37:20 | 显示全部楼层
楼上的兄第,还有个问题:
就是用mysql函数mysql_query()往数据库发送动态数据时,sql语句该怎么写?
如:
   我的动态数据为:
    query=(const unsigned char*) AsDotstring(ep->getcallsignaladdress())
   然后我想把它送到数据库中,我用mysql_query,试了很久都没有成功,在网上查也只有发送静态数据库的方法.请问我该怎么写?
回复

使用道具 举报

发表于 2003-12-12 14:55:29 | 显示全部楼层
说真的  我不知道
我只用sql做了一些简单的事情  没遇到过你这样复杂的
你问问别人吧
回复

使用道具 举报

 楼主| 发表于 2003-12-13 09:05:01 | 显示全部楼层
谢谢你.
以后长联系.
我的QQ号:
153658306
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-29 07:11 , Processed in 0.112299 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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