VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
关于VS2019中使用MFC,使用静态库时出现LNK2005和LNK1169时的问题
最近刚学MFC几天,前几天碰到一个问题,我自己创建的项目是基于静态库,然后就出现了一堆LNK2005和LNK1169的问题,具体如下:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2005 “protected: void __thiscall CMFCControlContainer::PreUnsubclassControl(class CWnd *)” (?PreUnsubclassControl@CMFCControlContainer@@IAEXPAVCWnd@@@Z) 已经在 afxnmcdd.lib(afxctrlcontainer2.obj) 中定义 MFCApplication2 C:\Users\哑剧。\source\repos\MFCApplication2\uafxcwd.lib(afxctrlcontainer2.obj) 1
当时也不懂啊,就疯狂百度,然后发现一个帖子说在属性中改成动态库就行了。当时试了一下,果然没问题了。
但是当快做完要生成exe的时候,发现了动态库的鸡肋,动态库生成的exe不能在没有VC的电脑上运行,即动态库生成的exe程序必须基于电脑自带的VC库才能运行,而大部分人想做的都是一个在任何电脑上都能运行的小程序,于是又改成了静态库,结果还是同样的错误。
在网上找了很久,什么改链接器设置,改C/C++设置,反正就在属性了一通乱改,发现还是不行,要么出现其它问题,要么还是老问题,后来发现了这一个答案:
解决方法很简单,打开stdafx.h文件,注释掉 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS
但是我发现,我的是VS2019啊,压根找不到这个文件,后来查了,VS2017以后,stdafx.h就已经改成了pch.h。但是打开这个文件以后发现里面啥也没有,也根本没有#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS这句话,于是又开始接着百度了。
经过数个小时的努力,我找到了这篇文章:
http://blog.chinaunix.net/uid-21222282-id-1829254.html
看到了这一句:
在项目->属性->链接器->命令行->附加选项中加 /force
虽然只是其中的一句话,我实在没办法就试了试,结果就能编译了。
我知道这只是把重复定义给忽略了,我也看到过很多说的很详细的内容,但是仍然无法解决,作为一个初学者我只是要我的程序能正常运行就行了,运行会有警告,但是不会报错,在这里给大家一个解决思路。
VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题相关推荐
- MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
以vs2012为标准.转自:http://technet.microsoft.com/zh-cn/library/w4zd66ye ,有改动. 一 MFC的静态库(.lib) MFC静态库使用下列命名 ...
- MFC 在静态库中使用MFC,静态多线程 兼容更多windows版本避免提示缺少很多dll,安装运行库 Visual C++ Redistributable for Visual Studio
不管动态还是静态都有可能缺dll.最安全的是安装运行库: Download Visual C++ Redistributable for Visual Studio 2015 from Officia ...
- VS2019下生成静态库并调用
Part 1:生成静态库 step1: 首先,需要创建一个空项目,然后分别在头文件里写需要的类和函数: step2: 在 项目属性 里找到 配置属性,在配置属性的 常规 里将 配置类型 修改为 静态库 ...
- mfc设置静态库和minidump、restart
静态库 MFC静态库 crt静态库(/MT) /MD动态库 vs2015以后的vc版本增加UCRT支持(win10除了exe程序还有uwp程序,兼容win10系统的所有终端,包括手机) minidum ...
- VS在引用外库运行时显示无法解析外部符号
VS引用外库在运行时显示无法解析外部符号 问题截图 原因 链接器无法链接到 .lib,可以查看下图位置看库是否引入成功. 解决 检查库的配置是否正确.下面列出我在引用第三方库时的配置过程和注意事项. ...
- 解决C++ MFC源码运行时 由于找不到MFC42D.DLL,无法继续执行代码
大家在从一台PC上拷贝C++源代码到另一台PC上 编译时有没有遇到过这种情况 由于找不到MFC42D.DLL,无法继续执行代码.重新安装程序可能会解决此问题. 由于找不到MSVCRTD.dll,无法 ...
- Linux下动静态库的打包与使用C C++
目录 前言 为什么用动静态库 动态链接与静态链接 底层优缺点 Linux下的动静态库 动静态库的对比 打包静态库 使用静态库 打包动态库 使用动态库 小结 win下打包动静态库 前言 为什么用动静态库 ...
- Xcode 创建.a和framework静态库(转)
最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. iOS中的 ...
- Linux 下的动态库、静态库与环境变量
最近这几天在处理集群软件的过程中,遇到各种各样的库和环境变量的问题,被虐的不清!趁此机会,整理了一下 Linux 下静态库.动态库(共享库)和环境变量的一些知识,与大家共享一下. 库的种类 Linux ...
- linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...
一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...
最新文章
- java 写优先锁_Lock读写锁的优先度比较
- 自动生成Insert数据的SQL脚本
- 区块链去中心化的生命之源:“DPOS(委托权益证明)共识机制”
- oracle 自定义 聚合函数
- ios PNG Crush error (PNG图片错误)
- 嵌入式C语言基础(二)
- 二进制文件签名_二进制数的签名表示
- python end用法在固定位置换行_在Python中链接方法时,换行的样式正确
- python ico_Python协程asynico模块解读
- 莫名其妙的java.lang.NoClassDefFoundError
- JS获取地址栏参数的方法
- Bailian2764 数根(POJ NOI0113-50)【数论】
- matlab学习心得与体会
- 手机版wps支持格式
- 点到直线的距离公式推导
- win10内存满载测试软件,高手亲自解决win10内存检测工具的详尽处理步骤
- 重庆交通大学计算机考研资料汇总
- POI Excel插入行,下面的行动态移动
- Go + C 一款简单的贪吃蛇
- 1-3 5-7的c语言程序,C语言求1-1/3+1/5-1/7+...——小程序,大道理
热门文章
- 辞退了一位简历造假的程序员,简历美化可以,造假不可取!
- workbench动力学周炬_ANSYSWorkbench有限元分析实例详解(动力学)
- OS_windows_性能监视器资源监视器任务管理器:指标阅读与使用/关闭/调整虚拟内存/android内存调度
- 【avx2】VitrualBox 安装centos7 支持avx2
- 计算机32位好还是64位好,电脑系统选择32位好,还是64位的好呢?
- 基于STM32串口通信的ESP8266WiFi模块使用
- 【算法01】—动态规划
- mysql类exadata功能_EXADATA智能扫描
- Exadata使用EXAchk进行健康检查
- scratch绳子算法 少儿编程电子学会图形化编程scratch等级考试四级真题和答案解析2021-3