Col*_*nee 12 c++ 64-bit linker module visual-studio
我正在尝试使用Visual Studio 2005创建一个项目的x64版本.它目前因链接器错误C1905失败,"前端和后端不兼容(必须针对相同的处理器)."
从我收集的内容来看,这基本上是说我的x64版本试图与x86模块链接.不幸的是,这个项目链接了很多不同的库.我不确定导致问题的是哪一个.
有没有办法从Visual Studio中获取更多信息?
Chr*_*ich 11
首先,检查Configuration Manager(Build> Configuration Manager ...)以确保您为同一平台构建所有项目.
如果这没有帮助,那么从Visual Studio命令提示符(可从"开始"菜单中获得),您可以dumpbin通过执行以下操作来确定.lib和.obj文件的体系结构:
C:\Foo> dumpbin /headers Foo.lib | more
Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.
Dump of file Foo.lib
File Type: LIBRARY
FILE HEADER VALUES
             14C machine (x86)
               3 number of sections
        4C6CB9B6 time date stamp Wed Aug 18 21:57:26 2010
             113 file pointer to symbol table
               8 number of symbols
               0 size of optional header
             100 characteristics
                   32 bit word machine
标头值下的第一行告诉您编译.lib/.obj的架构(在本例中为x86).
如果您有很多链接的中间体,只需查找x86(或x64)文件就可以自动执行此操作:
for /R %f in (*.obj *.lib) do @echo %f && dumpbin /headers %f | findstr /c:"machine (x86)"
小智 5
另一个原因是编译标志.如果某些未设置为整个程序优化而其他未设置,那么您也会收到此错误.VS中有两个这样的设置 - 一个在General级别,一个在C++/Optimization.旧版VS生成的库没有这个集合.由较新版本的VS生成的那些设置.
找出有问题的库的唯一方法是一次取消一个,直到错误消失.
| 归档时间: | 
 | 
| 查看次数: | 5431 次 | 
| 最近记录: |