• 4089阅读
  • 2回复

[提问]QtCreator中使用sqlite3 API的问题 [复制链接]

上一主题 下一主题
离线劉俊
 
只看楼主 倒序阅读 楼主  发表于: 2013-04-15
我的Qt SDK版本是4.8.0,安装的时候是选择完全安装的。
因为手上的程序的一个模块要用到sqlite的API,所以我在程序中包含了sqlite3.h,但是编译时却出现没有找到该头文件错误。搜索qt sdk所在的文件夹却又能够找到对应的头文件和dll、lib。


于是将其放到我的工程目录下之后,编译程序时却依然出现一系列错误,例如“undefined reference to `sqlite3_backup_init'”等错误,这是为什么呢?明明包含了该有的头文件,而且也在工程目录下放了sqlite.dll和sqlite.lib文件,编译程序依然出现上述错误?


于是我索性在sqlite的官网上面直接将sqlite的源码下载了,将一系列的头文件和.c文件加入到我程序中,编译、运行,没有报错,但是出现令人困惑的错误。
没有加入sqlite头文件和源文件之前的GUI程序是正常运行的,能够显示界面的。但是加入了sqlite头文件和源文件之后的程序,虽然在QtCreator应用程序输出那一栏可以看出程序是在运行的,但是却没有显示任何界面。再次运行程序,正常情况下应该是会报错的,因为已经有一个实例在运行,但是事实上却又能生成另外一个实例,这个实例和前面那个一样,一样没有显示出界面,用任务管理器查看也能看到它在运行。


于是我就想单步调试程序,看一下是不是程序过早退出,而没有显示出界面,但是在调试中我却发现程序压根就没有运行起来,根本就没有进入main函数里面,甚至是如何开始并结束都不清楚。调试选项中,无法选择单步运行等其它选项,只能选择中断或者结束调试。这么奇怪的现象从来没有见过~~
并程序中的#include<sqlite3.h>和使用了sqlite API的地方注释的,编译、链接,重新运行程序,却发现程序又能正常运行?这是什么回事?


其实我就是想在QtCreator中使用sqlite的API而已,没想到有这么多问题,各位前辈有没有做过这方面的,请指教一下~~
谢谢~~

离线征途开始

只看该作者 1楼 发表于: 2013-05-15
问题解决了吗
离线ppdayz

只看该作者 2楼 发表于: 2013-05-16
直接用qt封装的QSqlDatabase这些类,比sqlite api方便
快速回复
限100 字节
 
上一个 下一个