当前位置:首页 > 数据库 > SQlite

安装sqlite c++库遇到的问题

安装sqlite c++库遇到的问题

编译环境,vs2017+64bit+MFC gui

问题1

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C1047
对象或库文件“D:open_sourcesqlite3sqlite3pp-masterheaderonly_srcsqlite3.lib”是使用比创建其他对象所用编译器旧的编译器创建的
;请重新生成旧的对象和库 SplitDemo D:_sync_work3rst_DL_3winSplitDemoLINK 1
解决办法:Release模式下->属性->常规->项目默认值->全程序优化 将这里的默认项 “使用链接时间代码生成”改为“无全程序优化, 接下来就可以运行了。
原始文章link

问题2

严重性 代码 说明 项目 文件 行 禁止显示状态
警告 LNK4098 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library SplitDemo D:_sync_work3rst_DL_3winSplitDemoLINK 1

这个是2个lib文件都定义了相同的函数导致的,需要屏蔽其中一个,解决办法如下:

原始文章
文章很长,我就不复制粘贴了

问题3

LNK4098 默认库 与其他库的使用冲突;请使用 /NODEFAULTLIB:library
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C1189 #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version.
Please #define _AFXDLL or do not use /MD[d] SplitDemo c:program files (x86)microsoft visual studio2017communityvctoolsmsvc14.16.27023atlmfcincludeafx.h 24

VS2013运行MFC程序错误提示
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

解决方法:
编译选项设置如下:

1、【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】,设置为“多线程DLL(/MD)

2、【项目】->【属性】->【配置属性】->【连接器】->【输入】->【忽略指定库】,输入:msvcrt.lib
或者:
【项目】->【属性】->【配置属性】->【连接器】->【命令行】,输入:/NODEFAULTLIB:msvcrt.lib

原始文章出处


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!