VS常见链接问题解决方案大全(LNK1112、LNK2109、LNK1123)

【Qt C++】fatal error LNK1112: module machine type ‘x64‘ conflicts with target machine type ‘X86‘ 查找别人的博客才知道得先运行“x64 Native Tools Command Prompt for VS 2022”配置x64的工具链编译环境,否则cl.exe默认都是以x86的库在链接程序。我检查了下VS Code的setting.json文件发现,qtConfigure.vcvarsallPath这个参数就是用来调整编译器的版本的。发现VsCode里确实有打印,64位环境的配置过程,紧接着执行了jom,但最终还是报LNK1112错误,相当于可能配置后没有生效?等文章,最终的写法如下。 阅读详情

使用VS进行编程时经常会遇到类似LNK1112、LNK2109、LNK1123这些问题,这里做一下总结。
1、LNK1112问题
问题描述:模块计算机类型“X86”与目标计算机类型“x64”冲突
这里写图片描述
原因:程序运行时链接所需的dll文件时发现所需的DLL为X64类型而实际编译出来的却是X86类型,因此报错。
解决方案:
1)检查系统是否已经安装VS下X64编译能力
在控制面板中找到VS2008,选择卸载或更改,如下:
这里写图片描述
之后看到如下界面:
这里写图片描述
之前遇到过这里的X64编译器和工具是灰色的没有安装的情况,所以安装vs的时候还是要注意这些小的细节,如果已经安装了可以跳过这一步了。

2)检查VS本身的包含路径是否正确设置为64位:
在VS中依次打开"工具”->“选项”->“项目和解决方案”->“VC++目录”,在平台这里选择X64,然后更改依赖的头文件,库文件和可执行文件目录:
这里写图片描述
注意不要混淆win32和x64的设置,一般在实际的项目中这里一般对应不同位数的操作系统进行不同的版本编译,比如下面的路径是X64的:
这里写图片描述
3)检查VS工程的配置是否正确 :
在需要编辑的工程上右键进入属性,如下:
这里写图片描述
如果需要的平台在下拉列表中没有,可以进行新建
这里写图片描述
上述步骤OK后回到属性页,选择“链接器”->“高级”,将目标计算机设置为MachineX64:
这里写图片描述
重新生成VS工程,一般是可以正常编译的。
2、LNK2109问题:
问题报错示例:

 error LNK2019: 无法解析的外部符号 "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall CArchiveCryption::DeCryptstring_2(char *)" (?DeCryptstring_2@CArchiveCryption@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAD@Z),该符号在函数 "public: static int __cdecl CActor::CheckTrail(void)" (?CheckTrail@CActor@@SAHXZ) 中被引用    Actor.obj

1)所在工程下缺少必要的头文件和源文件。可以查看一下这段错误中描述的类似CheckTrail()之类的函数所在的源文件和头文件是否已经添加到了该工程中,若不存在添加之后再次进行编译。
2)缺少必要的头文件,这里需要在工程上右键属性列表之后找到如下位置添加所需依赖的库:
这里写图片描述
再次进行编译。
3、LNK1123问题:
问题详情示例:
这里写图片描述
遇到这个问题一般需要先对工程右键进行清理。如果清理之后依旧编译仍然报这个错误,一边是因为cvtres.exe这个文件与使用的VS版本不匹配的原因。
这里写图片描述

参考博文:
http://blog.youkuaiyun.com/holybin/article/details/50881475

正确解决“error LNK1123 :(LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 )“的有效解决方法 正确解决"error LNK1123 :(LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 )"的有效解决方法 阅读详情

相关推荐

DDR4 硬件设计笔记

DDR4-DRAM是第四代支持双倍数据读取,支持随机位置存取的静态存储器。DDR4-DRAM的工作原理。DDR之T拓扑和Fly-by拓扑。DDR的硬件设计。DDR4 PCB设计要点介绍。DDR4之PCB走线间距的串扰评估。DDR4之内存通道(channel)和内存列(rank)。

qq_26815321的博客 1万+

error LNK1112错误: 模块计算机类型“x64”与目标计算机类型“X86”冲突

编译x64的过程中可能会出现LNK1112错误。 此时注意3点: 项目=>属性=>配置,选择或新建x64平台 项目=>属性=>链接器=>高级=>目标计算机,选择MachineX64(/MACHINE:X64) 项目=>属性=>链接器=>命令行=>其它选项,里面如果有类似x86的内容,删除掉。 网上很多只写了前两点。特此标注。 ...

皓月如我的专栏 6475

海康VisionMaster表面缺陷滤波实战:从参数调优到工业检测避坑指南

本文深入探讨海康VisionMaster表面缺陷滤波技术在工业检测中的应用,从参数调优到ROI绘制与Blob分析的协同策略,提供金属外壳、锂电池铝壳等复杂表面的缺陷检测实战指南。通过多级滤波架构和动态ROI生成法,显著提升检出率至98.7%,误检率低于0.5%,为工业质检提供智能化解决方案。

ujm5678901的博客 328

错误 LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突

这个错误表明你在进行链接时,模块的计算机类型与目标计算机类型冲突。在这里,“x64”代表64位系统,“X86”代表32位系统。要解决这个问题,你需要确保你的所有模块(包括库文件和依赖项)都是与你的目标计算机类型相匹配的。你的目标是64位系统,那么你需要使用64位的库和依赖项进行链接。如果你使用的是开源库或第三方库,确保你下载的版本是与你的目标平台兼容的。如果你自己编译了库,确保你选择了正确的目标平台。另外,确保在你的开发环境中,项目设置也匹配了你的目标平台。

Yangy_Jiaojiao的博客 3941

Marin说PCB之LPDDR5的布线注意事项--01

以上就是本期所有内容了,有些是通用的LPDDR5的设计准则,有的是针对单板的设计规则,严格意义说是没有哪一种规则是完全适用的LPDDR5的 通用规则的,不同的单板可能板厚,板材,层数,SOC以及DDR的型号都是不同的,一般的做法就是严格按照SOC手册上的LPDDR5的要求加上仿真同事给的建议修改优化就好了,我们下期文章不见不散。我们知道想要做好一个LPDDR颗粒,需要考虑的是因素有很多例如,电源完整性,信号完整性,层叠的设计,布局的摆放,布线的合理规划,去耦电容的摆放等等。

weixin_45223454的博客 3163

核磁干货 | RESTplus实战:静息态fMRI预处理全流程解析

本文详细解析了使用RESTplus工具包进行静息态fMRI数据预处理的完整流程,包括数据准备、环境配置、预处理步骤及高级分析技巧。RESTplus作为基于SPM的批处理工具,以其图形化界面和智能化参数设置显著提升了核磁静息态数据分析的效率,特别适合新手和临床研究人员。文章还分享了实战中的常见问题解决方案和性能优化技巧。

wine的专栏 883

错误 LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突解决办法

错误 LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突解决办法

qq_71286244的博客 3976

诠视MR眼镜Unity开发设置_Unity2020.3.38

请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。

m0_71932574的博客 603

VS编译器 :LNK链接错误汇总:LNK2001 / LNK2005 / LNK2019 / LNK1120

VS编译期间遇到各式各样的链接LNK错误,作一汇总: LNK1120: 1 个无法解析的外部命令 这个问题的原因是有头文件,但是找不到实现。 有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。 2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include...

现从事游戏开发领域 | 团队项目be_with开发进行中 web方向感兴趣者私 ——We can do all things. 9209

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2169

CloudCompare 二次开发(36)——非均匀体素降采样

使用CloudCompare与PCL编程实现的非均匀体素降采样。

点云侠的博客 746

error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突 (OpenCV配置环境)

第一次写博客,记录一下我在配置OpenCV的过程中踩过的坑以及解决方法和自己的一些理解 电脑系统:Windows 10 专业版 OpenCV版本:3.1.0 Visual Studio版本:2013 问题描述: 在vs中配置完opencv后编译一个示例程序时报错:error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突 原因分析: OpenCV库与vs中编译器不匹配,32位的库(x86)要用32位的编译器编译,与之对应,64位的库要用64位的编译器...

baidu_41896327的博客 7918

【ITS模型】基于MATLAB的ITS宽带短波信道模型的建模和仿真

1.软件版本 MATLAB2010b 2.本算法理论知识 对短波信道建模具有里程碑意义的是沃特森在1970年发表的一篇文章,文章中提出了一种静态模型,并在大气中进行了实验验证。 此静态模型可以描述为高斯散射增益抽头延迟线模型,即Watterson模型。 Watterson信道模型是经典的窄带短波信道模型,在这个模型中,信道衰落是瑞利幅度分布,而在每种传播模式中多普勒扩展的功率谱满足高斯分布。Watterson模型没有定义延时扩展的形状,认为各个多径传输模式中不存在延时扩展。其...

FPGA/MATLAB学习教程/源码/项目合作开发 2757

fatal error LNK1123 错误解决方法

最近用VS2010写C++项目,奇怪的是每次生成解决方案都有一个fatal error LNK1123错误,提示生成失败。查阅资料总结解决方案如下:(1)项目——&gt;属性——&gt;连接器——&gt;清单文件   中生成清单 “是” 修改为 “否”      该方法一般都可以解决问题,但是每次创建项目都要设置一遍。(2)查找是否有两个cvtres.exe  删除较旧版本。 第一个是在你 VS2...

GIOVANNO的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

vs调试问题:error LNK1112编译器位数配置问题

编译环境为:pcl1.8+vs2013 代码实现点云数据的相关处理,在编译的时候出现如下错误: error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 以前好像也出现过这样的问题,在网上搜索了解决办法:库的版本,编译器的位数,项目属性中的配置都要一致。 网上是这样说的:htt...

lhy2677886724的博客 1056

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

fatal error LNK1123错误

第二个是C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe 通过右键查看属性,查看文件版本号,删除较旧版本即可。第一个是在你 VS2010安装目录下 如(D:\Program Files\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe);1)项目——>属性——>连接器——>清单文件 中生成清单 “是” 修改为 “否” 该方法一般都可以解决问题,但是每次创建项目都要设置一遍。

kxc804195223的博客 1394

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

用VS2010编译C++项目时出现这样的错误: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 方案一:(这个方法比较好,在用qt运行时出现问题也能解决) 复制 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b

guoduhua的专栏 2484

fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

VS工程,如果使用的库位数和当前工程的配置不一致,就会报这个错误。 所以,要使其一致才可以。要么重新编译使用的库,要么修改当前工程的配置。 修改当前工程配置 例如,配置成64位,如果默认时32位x86,则需要在配置管理器里面新建x64, 右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。 属性→链接器→命令行,如果下面有 /machine:I386 或者/machine:X86 等一定要去掉。 参考...

EmbeddedCoder 的优快云博客 1万+

vs2010编译错误:LNK1123:文件无效或者损坏

解决方法: 1、清单文件的问题 1.1 右键项目,进入项目属性,打开配置属性->清单文件->输入和输出->嵌入清单,选择否; 1.2 右键项目,进入项目属性,打开配置属性->链接器->清单文件->生成清单,选择否; 2、更换cvters.exe即可,适用于qt 2.1 复制C:\Windows\WinSxS\x86_netfx4-cvtre...

windspears的博客 2865

Qt无法编译 LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突

LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突 解决方案

周遭. 1582

fatal error LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突_(解决方案)

 问题描述: 在X64 平台上开发dll 文件,在生成dll时Vs 2010 出现如下错误 :“fatal error LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突”; 解决方法: 有两处需要设置: 1、右击该项目,选择属性,在最上面点击 “配置管理器”,新建平台 “x64”,然后把 活动解决方案平台选为X64,点击关闭。 2、在属

u010064712的专栏 2451

Bug(四)——error LNK1112:模块计算机类型"x86"与目标计算机类型"x64"冲突

问题描述 win10 64 VS 2013 出现如下错误 :“error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突”; 解决方法 有两处需要设置: 1、右击该项目,选择属性,在最上面点击 “配置管理器”,新建平台 “win32”,然后把 活动解决方案平台选为win32,点击关闭。 2、在属性页选择 “链接器” —&gt;“高级”,在里边有一项名为目标计算机...

YBAdiam的博客 1808

彻底解决 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

问题:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 方法一:项目-->项目属性-->配置属性-->连接器-->清单文件-->嵌入清单 中的“是”改为“否”,不让他将清单嵌入,自然也用不着转换了,所以轻松编译。每次新建项目都要设置。 方法二:若程序程序要加写rc,必须带清单才能正常使用。此时就需要删除掉一个cvtres.exe。而系

少壮要努力 1900

错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ   这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的. 错误描述如下: 1>正在编译资源... 1>正在编译资源清单... 1>正在链接... 1>CVTRES : fatal error CVT1100: 重复的资源。type:MA

wem520的专栏 3401

error LNK1123 错误记录与解决方法整理

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

jean7155的专栏 2075
上一篇: Linux C语言高级编程之共享库(附测试案例)
下一篇: js+html+springboot实现文件夹上传遇到的坑及其解决方案!
Coding13
博客等级 码龄10年 53粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值