找回密码
 立即注册
收起左侧

qt连接sqlite3数据库

11
回复
9071
查看
[复制链接]
累计签到:30 天
连续签到:1 天
来源: 2017-12-4 09:55:01 显示全部楼层 |阅读模式
1Qter豆
需要用到sqlite3数据库,按照下方网址的方法添加了sqlite3.h,sqlite3.lib文件
http://blog.csdn.net/alspwx/article/details/12649225#reply

但是在调用的时候,比如:
iRetVal = sqlite3_open(sq3Path[seq], &sq3);
sqlite3_exec(sq3, "begin;", 0, 0, &zErrMsg);
显示undefined reference to "sqlite3_open",undefined reference to "sqlite3_exec"


函数在sqlite3.h已经定义过的:
SQLITE_API int sqlite3_exec(
  sqlite3*,                                  /* An open database */
  const char *sql,                           /* SQL to be evaluated */
  int (*callback)(void*,int,char**,char**),  /* Callback function */
  void *,                                    /* 1st argument to callback */
  char **errmsg                              /* Error msg written here */
);

为什么还会一直报错呢

回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-12-4 10:35:31 显示全部楼层
现在Qt中已经自带SQLite,不需要第三方库了
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-12-4 11:23:04 显示全部楼层
kenneth 发表于 2017-12-4 10:35
现在Qt中已经自带SQLite,不需要第三方库了

如果使用第三方数据库的话,为什么会出现这个问题呢
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-12-4 16:50:25 显示全部楼层
本帖最后由 kenneth 于 2017-12-4 16:55 编辑

你包含头文件了吗? #include "sqlite3.h"
Qt 是不使用lib 这个文件的,只要在 pro 中增加 LIBS += -L$$OUT_PWD/xxxxx -lsqlite3
目录不能错
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-12-5 08:21:14 显示全部楼层
kenneth 发表于 2017-12-4 16:50
你包含头文件了吗? #include "sqlite3.h"
Qt 是不使用lib 这个文件的,只要在 pro 中增加 LIBS += -L$$OUT ...

添加了也是提示同样的错误
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-12-5 09:05:06 显示全部楼层
你把编译的临时文件删掉,再重新编译试试,也有可能是你第三方库存放目录错了
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-12-5 09:27:41 显示全部楼层
库文件的路径添加问题吧,这个库没有被项目引入成功,所以无法正常使用库里面的函数!
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-12-5 11:20:46 显示全部楼层
Since 发表于 2017-12-5 09:27
库文件的路径添加问题吧,这个库没有被项目引入成功,所以无法正常使用库里面的函数! ...

.pro 里面加的LIBS += -LE:/sqlite3/lib -lsqlite3
E:/sqlite3/lib是存放的sqlite3.lib文件,照理讲是没错的,但是去掉这行也是报相同的错误,好像这行没有起作用
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-12-5 11:22:36 显示全部楼层
kenneth 发表于 2017-12-5 09:05
你把编译的临时文件删掉,再重新编译试试,也有可能是你第三方库存放目录错了 ...

都没错唉  但是那行好像没有起作用,去掉也是报相同的错误
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-12-5 14:44:12 显示全部楼层
你是说 E:/sqlite3/lib是存放的sqlite3.lib文件 ????
这个路径应该是 sqlite3.dll的存放目录,而不是 sqlite3.lib 的

点评

对啊,windows 电脑添加的是 .DLL 文件,Android 手机 和 LINUX 下添加的是 .so 文件,lib 这个链接文件是伽干嘛的 ?  详情 回复 发表于 2017-12-6 09:19
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-12-6 09:19:50 显示全部楼层
kenneth 发表于 2017-12-5 14:44
你是说 E:/sqlite3/lib是存放的sqlite3.lib文件 ????
这个路径应该是 sqlite3.dll的存放目录,而不是 s ...

对啊,windows 电脑添加的是 .DLL 文件,Android 手机 和 LINUX 下添加的是 .so 文件,lib 这个链接文件是伽干嘛的 ?
回复

使用道具 举报

尚未签到

2022-6-2 17:26:36 显示全部楼层
解决了吗?我也报出了这个错误
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了