VS配置、编译sqlite失败的解决方法

       在VS上有需要使用到数据库,选择的数据库是轻量级的数据库—sqlite。这个数据库的特点就是调用方便,且支持可视化工具进行数据库的编辑。但是,在VS2012上对sqlite进行配置的时候,一直无法调试成功。
       一般来说,我们需要下载sqlite的源码和对应的工具包以及dll包。由于下载的dll包中没有lib库,所以在程序中如果要是用lib库的话,需要我们自己动手编译。编译的话,网上提供的方法总共有2中。一种是通过cmd命令调用vs的lib.exe进行生成,第二种方法则是通过VS引入源码进行编译生成。我们这里主要讲第一种方式。
      Cmd生成lib的流程主要如下:
     1. 进入D:\Microsoft Visual Studio 11.0\VC\bin目录下,拷贝lib.exe,link.exe以及mspdb110.dll(VS对应的是mspdb140.dll)到sqlite的目录中。
     2. Sqlite目录中需要有sqlite的sqlite3.h,sqlite3.def,sqlite3.dll。
     3. 通过cmd命令进入sqlite目录中,通过命令LIB /MACHINE:IX86 /DEF:sqlite3.def生成lib静态库文件。这里针对64位的pc命令会有所不同。如果是64位的系统的话,命令应该改为:LIB /MACHINE:X64 /DEF:sqlite3.def.
      值得一提的是,上述两种方法编译过程中,都需要针对你所用的pc位数进行匹配,即32位需要使用32位的库。64位则使用64位的库,这个如果弄错了,则无法生成lib库。我的pc上使用的是64位的操作系统。

当生成了lib之后,我们可以创建一个sqliteDemo的工程进行验证。如同其他动态链接库的调用方式一样,我们添加了sqlite的链接库。测试代码如下:


#include<stdio.h>
#include<iostream>
#include"sqlite3.h"
usingnamespacestd;
/*****************************************
* 用作数据库测试的demo
*****************************************/
intmain()
{
sqlite3*tempDB;
sqlite3_open("test.db",&tempDB);
return1;
}
如果直接运行的话,可能会报下面两种错误界面。
 
或者是 


产生这种错误的原因主要是,我们vs默认生成的程序是Win32的,而这对应的lib已经是64位的,所以会有这种错误。
解决方法如下:
 
在VS的配置管理器中,选择x64平台,重新进行编译,就能解决该问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值