LNK1112模块机器类型'X86'与目标机器类型'x64'冲突(VC ++ 2005)

时间:2012-07-13 08:11:59

标签: visual-c++ 64-bit visual-c++-2005

我正在尝试使用以下步骤在Visual Studio 2005 Professional中构建一个空白的64位C ++应用程序:

  1. 创建新的Win32控制台应用程序项目
  2. 转到Configuration Manager,创建x64类型的新解决方案平台,从Win32复制设置
  3. 保存&构建
  4. 然而,我收到此错误:

    LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

    所以,我尝试更新库目录以指向kernel32.lib

    1. 转到项目属性,链接器,常规,其他库目录并进行设置 “C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ lib \ amd64”
    2. 保存&构建
    3. 这给了我错误:

      LINK : fatal error LNK1104: cannot open file 'user32.lib'

      所以,我尝试更新库目录以指向user32.lib

      1. 转到项目属性,链接器,常规,其他库目录并添加 “C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Lib \ x64”
      2. 保存&构建
      3. 但现在我收到了错误:

        .\x64\debug\stdafx.obj : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

        任何想法我做错了什么?

3 个答案:

答案 0 :(得分:0)

听起来问题在于目标文件stdafx.obj而不是系统库。警告说stdafx.obj是32位,因此无法链接到64位目标。要尝试的事情:

  • 删除构建目录x64win32
  • 重建项目
  • 检查stdafx.cpp的构建设置,确保其构建为64位

答案 1 :(得分:0)

一定是Visual Studio的破坏安装。 Windows和VS2005的新安装解决了这个问题。

答案 2 :(得分:0)

自提出问题以来已经很久了,但为了其他正好阅读此内容的人的利益,所需的更改是在链接器标志设置中。更改/机器:I386到/ machine:x64