首页 新闻 会员 周边

stlport有关的连接错误:模块计算机类型“x64”与目标计算机类型“X86”冲突

0
[待解决问题]

我的操作系统是win7 32位

开发工具 vs2010

工程的属性是 win32

 

 

出现链接错误:stlportstld_static.lib(iostream.o) : fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突

怎么解决

北冥飞鱼的主页 北冥飞鱼 | 初学一级 | 园豆:189
提问于:2014-07-25 17:42
< >
分享
所有回答(1)
0

使用 x86 版本的 stlportstld_static.lib,或者找台 x64 的机器,然后把你的项目修改为 x64.

Launcher | 园豆:45045 (高人七级) | 2014-07-25 17:44

忘了说了 我想生成x86平台下可执行文件 你的方法可以 但是我的平台式x86 无法执行x64程序

支持(0) 反对(0) 北冥飞鱼 | 园豆:189 (初学一级) | 2014-07-25 17:58

@_TonyWang_: 我忘记了加分号了,虽然我用了个“或者”,我给你分开,你看清楚了!!!

两种解决办法:

一种是使用 x86 版本的 stlportstld_static.lib,你的项目保持为 x86;

另一种是找台 x64 的机器,使用 x64 版本的 stlportstld_static.lib,然后把你的项目修改为 x64.

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-25 18:02

@Launcher: stlport在没有编译之前分32位和64位吗?ps:我的stlport5.2.1是同学帮我下的,当时我上不了外网

支持(0) 反对(0) 北冥飞鱼 | 园豆:189 (初学一级) | 2014-07-28 23:10

@_TonyWang_: stlportstld_static.lib,从这个命名的规则来看,这是一个静态链接库,但是不管是静态链接库还是动态链接库,.lib 文件都是源代码编译后的最终结果,既然是编译,那么编译时就一定指定了目标平台是 x86 ,还是 x64,所以不存在你说的没有编译之前分 32 位和 64 位的问题,因为它已经是编译的结果,当你在项目中使用此静态链接库时,编译器不会再去编译它,而是链接。关于动态链接库和静态链接库的生成和使用,请自行学习。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-29 09:09

@_TonyWang_: 除了 x86 和 x64 的问题,还有 stlportstld_static.lib 链接到的 C 运行时的版本问题,这也是你需要注意的地方。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-29 09:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册