MFC工程中使用sqlite3源代码--c和c++代码混合编译出错解决

在64位MFC工程中使用sqlite3源代码时,由于预编译头文件设置不当导致编译错误。解决方法是将sqlite3源文件的Precompiled Headers设置为Not Using Precompiled Headers,并在Linker的Command Line中添加/force选项,以忽略多重定义错误。经过此调整,程序可以成功编译并运行,但可能需要进一步测试潜在影响。
摘要由CSDN通过智能技术生成

网上下载的sqlite3现成的dll是win32位的,而由于我正在写的程序是64位的,所以将网上下的sqlite3的源代码直接加载到工程中使用了。

最新版本的sqlite3源文件只有一个.h和.c文件,比以前用起来方便多了。

在这2个文件的Property -> c/c++ -> Precompiled Headers 中设置为Not Using Precompiled Headers并build后,出现了4个错误:

1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) already defined in LIBCMTD.lib(new.obj)
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) already defined in LIBCMTD.lib(dbgdel.obj)
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned __int64)" (??_U@YAPEAX_K@Z) already defined in LIBCMTD.lib(new2.obj)
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPEAX@Z) already defined in LIBCMTD.lib(delete2.obj)
fatal error L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值