2015-02-05 78 views
1

我有一个VC++代码(VS2013),它在32位编译完美。但是当我尝试在64位编译相同的代码时,我得到了下面的链接器错误。使用VS2013编译64位时链接错误C1905

1>LINK : fatal error C1905: Front end and back end not compatible (must target same processor). 
1>LINK : fatal error LNK1257: code generation failed 

我提到的链接:: Stackoverflow-link

我能请得到帮助来解决这个问题,并编制了64位的代码。 无法附上代码片段,因为它是一个非常大的代码库。

+0

您对目标机器体系结构有何具体指定?确保你没有为你的构建混合不同的64位体系结构类型。 – rrirower 2015-02-05 15:24:08

回答

1

无法将32位(x86)代码与64位(x64)代码链接到同一个可执行文件或DLL中。这意味着仅使用所有静态库,导入库和DLL的64位版本。这意味着确保解决方案中的每个项目都使用x64配置进行构建。

请参阅this post了解关于64位本机编程的大量文章和演示文稿。

0

对于x64编译:

有时,这会与旧的项目被转换到新的版本发生(例如:VC 2013 - > 2015年VC)。

插入该行所有的* .vcxproj的:

<PreferredToolArchitecture>x64</PreferredToolArchitecture> 

在入门:

<PropertyGroup Label="Globals"> 
.... 
</PropertyGroup> 

这将解决您的问题。