gru*_*ber 26 c++ linker visual-studio
我试图从wxFreeChart库运行示例应用程序.在链接编译后出现错误:
wxcode_msw28d_freechart.lib(wxfreechart_lib_xydataset.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
Run Code Online (Sandbox Code Playgroud)
我试图将链接器选项\ advanced\target机器切换到MachineX64,但它不起作用.
我正在使用visual studio 2008,有什么建议吗?
感谢帮助
Han*_*ant 33
错误是显式的,您正在尝试链接使用不同CPU目标编译的库.可执行映像只能包含纯x86(32位)或纯x64(64位)代码.混合是不可能的.
您可以通过为项目创建新配置来更改目标CPU,仅更改链接器设置是不够的.在右上角的Build + Configuration Manager,Active solution platform组合中,选择New并选择x64.这将创建一个包含多个已修改项目设置的新配置,最重要的是将使用的编译器.
请注意,在VS2010之前,默认情况下不会安装64位编译器.如果在平台组合中没有看到x64,则需要重新运行setup.exe并打开选项以安装64位编译器.然后还重新运行您可能已应用的任何Service Pack安装程序.
一个痛点较少的可能方法是使用32位版本的库.
小智 17
我也遇到了这个问题并找到了解决方案.
首先是我如何解决这个问题.我有一个在x86中构建的项目.然后我使用配置管理器添加x64,我遇到了这个问题.
通过BuildLog.htm仔细查看,我看到这两个列为链接器选项:
/MACHINE:X64
/machine:X86
Run Code Online (Sandbox Code Playgroud)
我在"属性页"对话框中找不到可以更改此内容的任何位置,因此我打开了.vcproj文件并查找了相应的行并将其更改为:
AdditionalOptions=" /STACK:10000000 /machine:x64 /debug"
Run Code Online (Sandbox Code Playgroud)
问题解决了.
在我的情况下,它似乎是因为我从32位到新配置(64位)"复制了设置"并且它没有更新库.奇.
1> MSVCRTD.lib(ti_inst.obj):致命错误LNK1112:模块机器类型"X86"与目标机器类型"x64"冲突
这意味着"您的属性 - > VC++目录 - >库目录"指向一个内置32位lib的目录.不知何故修复!
在我的情况下http://social.msdn.microsoft.com/Forums/ar/vcgeneral/thread/c747cd6f-32be-4159-b9d3-d2e33d2bab55
参考:http://betterlogic.com/roger/2012/02/visual-studio-2010-express-64-bit-woe
| 归档时间: |
|
| 查看次数: |
101375 次 |
| 最近记录: |