先说结论:
使用的
库是32位的而写的代码目标机器是64位的,所以报错产生冲突
自己因为太蠢遇到的坑,焦头烂额搞了很久,记录一下,防止将来再掉进去(万一有和我一样掉进来的,希望能帮到你
都是OPENGL,freeglut不是glut
最近写代码半路突然要用到openGL,正好之前安装了glut,省了再安装配置了,冲冲冲。直接去前面写过的openGL程序里复制粘贴复制粘贴,运行时候蹦出来:
"XXX\Visual Studio2017\VC\Tools\MSVC\14.16.27023\lib\x64\glut32.lib : warning LNK4272: 库计算机类型“x86”与目标计算机类型“x64”冲突"
,代码中的所有GLUT函数都是无法识别的外部指令
直接懵了,去网上查吧,找到一个类似的但也没能解决我的问题
,大部分是“
模块计算机类型x64
与目标计算机类型x86冲突”,一晚上弄的头疼都没搞明白,第二天
在论坛里找有没有类似的问题,在一个讨论glut有没有64位的帖子里发现有人说:“glut那时候都没有64位机”
去openGL官网看看
“最初的GLUT已经20年没有更新了”
最初下载的时候到这里就是不看什么意思,硬着头安装了个GLUT,吃了没文化的亏
解决办法:下一个freeglut就行了
freeglut的主页上也有提到GLUT(正是我安装的那个)
“最初的GLUT已经废弃了,最新的版本(3.7)是1998年8月发布的,现在的freeglut是GLUT的完全替代库,它能够完全替代GLUT。”
也就是说两个库的函数使用是一样的(顺带一提,64位系统是零几年才出现的,论坛老哥诚不欺我)
补一张后来发现的,(1998戳得眼睛疼)
我最先安装的GLUT
1.下载freeglut和cmake后,使用cmake时注意,后缀要选择
win64
2.生成完毕之后使用VS分别以Debug和Release生成解决方案,生成解决方案时要注意自己需要的freeglut是32位的还是64位的
自己做的时候上面这两步忘记是哪一步翻了车(应该是VS生成解决方案时候没有仔细看,x86摆那里就直接生成了),调试代码的时候又是“库计算机类型“x86”与目标计算机类型“x64”冲突”
Visual Studio能够直接安装nupengl,整合了freeglut,glfw和glew,不用再自己编译了。
唯一的问题是
拒绝眼瞎
,容易眼瞎的地方加粗标红。
VS上配置openGL大都是使用VS自带的Nuget来统一管理包
右键项目,管理Nuget程序包,然后搜索nupengl,显示找不到包。
从已安装切换到浏览
右上角程序包源只有一个Offline Package,点开设置,绿色加号添加
名称随便比如xx
来源链接:https://www.nuget.org/api/v2/
确定之后记得右上角重新选择程序包源为xx
,就刚才新建的那个
整合了freeglut,glfw和glew
网上说要安装检索出的两个,实际上安装第一个core就会把第二个一起装上
先说结论:使用的库是32位的而写的代码目标机器是64位的,所以报错产生冲突自己因为太蠢遇到的坑,焦头烂额搞了很久,记录一下,防止将来再掉进去(万一有和我一样掉进来的,希望能帮到你都是OPENGL,freeglut不是glut最近写代码半路突然要用到openGL,正好之前安装了glut,省了再安装配置了,冲冲冲。直接去前面写过的openGL程序里复制粘贴复制粘贴,运行时...
文件中是自己整理的OpenGL的开发
库
,包括了几乎所有的功能模块,如实用
库
、辅助
库
、Windows专用
库
等,具体所含的文件如下:
opengl.
lib
、
glut
32
.
lib
、
glut
.
lib
、glu.
lib
、glu
32
.
LIB
、glaux.
lib
gl.h、
glut
.h、glu.h、glaux.h、GLEXT.H、WGLEXT.H
opengl.dll、
glut
32
.dll、
glut
.dll、glu.dll、glaux.dll
另外,里面附有VC6.0和VS2010的设置,包括
32
位系统和64位系统。
在使用优化
库
的过程中,因为要配置优化
库
所以需要链接
库
,但是配置完成后一直显示
计算机
类型
“
X86
”与
目标
计算机
类型
“
X64
”
冲突
的问题,搜集了很多解决办法最后终于找到问题了,所以总结一下避免后面的人踩坑。
首先,讲一下我自己的原因。主要是因为选择错了目录的
类型
了。
如图所示,我把
X64
的不知道怎么了,电脑默认成
X86
了,所以一直没有找到问题,改一下这个地方就行了。还有上面的配置平台也不能选错了。
X86
对应的咱们说的Win
32
位的平台。
X64
对应咱们的
X64
平台。
下面介绍一下网上比较好的解决办法:
目标
计算机
类型
是
X64
,但是用vcpkg安装的
库
是
X86
类型
的,所以运行时会出现问题。
一开始使用vcpkg安装
库
时,直接按照网上的命令.\vcpkg install opengl来安装,这样默认就是安装
X86
架构的,所以需要将原来安装的
库
移除,并使用
.\vcpkg install opengl:
x64
-windows来指定
库
的架构。
遇到bug不能只是盲目照搬博客上的解决方案。一方面是因为别人遇到的问题和你并不一样,盲目照搬别人的解决方法可能会越改越乱;另一方面,遇到bug要在
一
LNK4272
库
计算机
类型
与
目标
计算机
类型
冲突
解决方案:https://www.cnblogs.com/xiaoxiaomeng94/p/7204158.html
二“模块
计算机
类型
“
x64
”与
目标
计算机
类型
“
X86
”
冲突
解决方案
解决方案:https://blog.csdn.net/u014805066/article/details/78143091
2021年10月11日(笔记)
使用奥比中光相机Gemini参加一个项目,使用SDK OpenNI_2.3.0.66配置环境时碰到
库
计算机
类型
“
x86
”与
目标
计算机
类型
“
x64
”
冲突
,记录一下两种解决办法。
我的环境:windows10 64位
IDE: Visual Studio2017
一、64位
经过测试,官网提供的OpenNI64位SDK确实有问题,但是OpenNI-Extension-2.3.0.66
x64
是可以用的(论坛有大佬说
x86
可用,
x64
不行,但是我这里成功了),将OpenNI-Ext
新建-->名称:自定义->从此处复制设置:选择release/debug.
之后再打开项目属性菜单中的配置管理器时,QT项目release配置下就可以选
x86
(win
32
)平台了。
至此,
计算机
类型
冲突
就能解决了。
综合题 设某公司为构建公司内部网络,申请到IP地址块为130.38.28/24。公司经过调研,决定在公司内部划分3个局域网Lanl至Lan3,每个局域网上的主机数分别为90、60和40。试为该公司进行网络规划设计,要求: (1)给出每一个局域网相应的IP地址块(包括前缀)。 (2)每一个局域网可分配给主机使用的最小地址和最大地址是什么?假设该公司的网络接入Internet,公司网络中的主机可以访问Internet。 (3)假设该公司网络中的主机A使用12345的TCP端口与Web服务器通信,则当Web服务器返回信息给主机A时,相应数据包中的
目标
端口号及源端口号分别是什么? (4)假设Internet中有一台Web服务器的域名为www.
glut
.edu.cn,其首页为des.htm,试写出访问该首页的URL。
(1) 根据给定的IP地址块130.38.28/24,可以将其划分为三个子网,分别为130.38.28.0/25、130.38.28.128/26和130.38.28.192/26,其中前缀长度分别为25、26和26。
(2) 对于每个子网,可分配给主机使用的最小地址和最大地址如下:
- 子网1(130.38.28.0/25):最小地址为130.38.28.1,最大地址为130.38.28.126。
- 子网2(130.38.28.128/26):最小地址为130.38.28.129,最大地址为130.38.28.190。
- 子网3(130.38.28.192/26):最小地址为130.38.28.193,最大地址为130.38.28.254。
假设该公司的网络接入Internet,公司网络中的主机可以访问Internet。
(3) 当Web服务器返回信息给主机A时,相应数据包中的
目标
端口号为12345,源端口号为Web服务器使用的端口号(通常为80)。
(4) 访问www.
glut
.edu.cn的首页des.htm的URL为http://www.
glut
.edu.cn/des.htm。