我正在尝试使用 Visual Studio 2005 进行 x64 版本的项目。当前失败,并出现链接器错误 C1905,“前端和后端不兼容(必须针对相同的处理器)”。
根据我收集的信息,这本质上是说我的 x64 构建正在尝试与 x86 模块链接。不幸的是,这个项目与a lot不同的图书馆。我不确定是哪一个导致了问题。
有没有办法从 Visual Studio 获取更多信息?
首先,检查配置管理器(构建 > 配置管理器...)以确保您正在为同一平台构建所有项目。
如果这没有帮助,那么从 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)"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)