0

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

  1. 创建一个新的 Win32 控制台应用程序项目
  2. 转到配置管理器,创建 x64 类型的新解决方案平台,从 Win32 复制设置
  3. 保存并构建

但是,我收到此错误:

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

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

  1. 转到项目属性、链接器、常规、附加库目录并设置“C:\Program Files\Microsoft Visual Studio 8\VC\lib\amd64”
  2. 保存并构建

这给了我错误:

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

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

  1. 转到项目属性、链接器、常规、附加库目录并添加“C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64”
  2. 保存并构建

但现在我得到了错误:

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

任何想法我做错了什么?

4

3 回答 3

0

听起来问题出在目标文件stdafx.obj而不是系统库上。警告是说它stdafx.obj是 32 位的,所以它不能链接到 64 位目标。要尝试的事情:

  • 删除构建目录x64win32
  • 重建项目
  • 检查构建设置stdafx.cpp以确保其构建为 64 位
于 2012-07-13T08:33:59.900 回答
0

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

于 2012-07-16T03:28:26.853 回答
0

自从提出这个问题以来已经很久了,但是为了其他碰巧读到这个问题的人的利益,所需的更改是在链接器标志设置中。将 /machine:I386 更改为 /machine:x64

于 2013-10-16T06:57:00.307 回答