编译环境为:pcl1.8+vs2013
代码实现点云数据的相关处理,在编译的时候出现如下错误:
error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
以前好像也出现过这样的问题,在网上搜索了解决办法:库的版本,编译器的位数,项目属性中的配置都要一致。
网上是这样说的:
https://jingyan.baidu.com/article/1709ad80949f954634c4f0c8.html
那就一步一步确认:
1.检查了一下,发现PCL库安装的是这样的64位适用于vs2013的版本:
2.然后将编译器的位数改为64位,如下:
3.检查项目属性的配置,target machine属性选择x64:
4.编译结果,只有一个错误:
5.那既然是对x64不匹配,试着将其改为x86试试,结果是这样的,有没有很无语:
后来,重新新建项目并配置环境后,发现程序仍出现该错误。之前没问题的代码重新运行还是发现该错误。这时候就怀疑是不是在修改配置时候把环境改乱了。然后,我用了个笨办法,卸载当前电脑上的相关库,重新安装,并配置系统环境,就完美的解决了,但是这种重装环境的方法可能只适用于我出现的这种情况。
这里附上完整的修改方法链接,简单的位数配置错误就按照这个来就应该能解决了:
https://blog.csdn.net/tfy1028/article/details/8660823/
win10下,
vs2013
&opencv2.4.13
调试
项目,debug win32平台下正常运行,debug x64下报错:
error
LNK1112
: 模块计算机类型“X86”与目标计算机类型“x64”冲突。
其他项目win32和x64下
调试
都能正常运行,说明系统已经安装
VS
下X64编译能力,于是检查项目属性发现原因如下:
项目=>属性=>
配置
,选择或新建x64平台
项目=>属性=>
链接
器=>高级=>目标计算机,选择MachineX64(/MACHINE:X64)
项目=>属性=>
链接
器=>命令行=>其它选项,里面如果有类似x86的内容,删除掉。
网上很多只写了前两点。特此标注。
win7 下,安装的
VS
2010,然后搭配opencv2.4.3运行,报错为:fatal
error
LNK1112
: 模块计算机类型“X86”与目标计算机类型“x64”冲突 。通过网上查询,给错的答案大同小异,但是依然有很多朋友按照网上的答案无法解决这个
问题
,以下是我的解决方案
(曾参考http://blog.csdn.net/qtbmp/article/details/7273191?r
1、右击该项目,选择属性,在最上面点击 “
配置
管理器”,新建平台 “win32”,然后把 活动解决方案平台选为win32,点击关闭。
2、在属性页选择 “
链接
器” —>“高级”,在里边有一项名为目标计算机...
1. 系统 windows 7 64bit Ultimate 、
VS
.net 2010。(但是,可能我的
vs
.net 是 x86的,因为我看到安装目录是C:\Program Files (x86)\Microsoft Visual Studio 10.0)
2. 按照
http://www.opencv.org.cn/index.php/VC_2010_Express%E4%B
解决办法:1.新建项目时,在"平台"->"选择要添加到当前项目中的 Platform SDK。"中,把"已安装的 SDK"全部添加到"选定的 SDK"2.在"属性页"->"
配置
属性"->"
链接
器"->"命令行"中的"附加选项"里,有如下命令:"/subsystem:windows
[摘要:之后果为念见地一下64位的sizeof,以是设置装备摆设
vs
为64位的编译仄台,方式以下: 1、左键工程--属性 面击左上角的 设置装备摆设治理器 2、找到对应的项目,正在仄台一栏傍边面击下推,若是已有6]
之前因为想见识一下64位的sizeof,所以
配置
vs
为64位的编译平台,方法如下:
1、右键工程--属性
点击右上角的
配置
管理器
2、找到对应的项目,在平台一栏当中
(最近的课设需要设计一个餐厅点菜的系统在点菜的头文件和结算的头文件中我定义了一个全局变量extern int sum,并将其放在一个global的头文件里。我打算是让这个变量可以储存点菜中的金额,并让其在结算中调用出来。)麻烦大佬们帮我看下这个
错误
是怎么导致的/*"global.h"的代码如下*/extern int sum;/*“点菜.h”如下*/#include#include#include...