1

我目前正在尝试为 x64 Windows 学习 Assembly。我尝试了这个 Intel website的示例代码,但每当我尝试使用文档中给出的命令编译它时:

ml64 hello.asm /link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start

我总是得到一个

LNK1104 错误

我知道这意味着编译器找不到库文件,我搜索了这个问题并很快发现我需要带有 Windows SDK 的 Visual Studio,我下载并安装了它。但仍然无法在 Windows 系统文件以外的任何文件中找到kernel32.lib或。user32.lib

我尝试了一切,但我根本无法修复它。我希望有人可以帮助解决这个问题。

4

1 回答 1

0

有一个由 hutch 创建的著名MASM32 SDK 可用。此软件包包含(旧版)32 位版本中请求的库。

但是,hutch 也对那个著名的软件包进行了 64 位更新--:
Current build of the 64 bit MASM SDK
它应该包含您需要的.inc.lib文件以及更多...

这是 64 位 MASM SDK 的当前版本。这个更接近完成,并且添加了正确的 Microsoft 二进制文件,它能够构建广泛的应用程序类型。它可以以两种不同的方式使用,它应该从它正在安装的分区的根目录中解压缩。您可以手动将其添加到 MASM32 SDK 的安装中,也可以将其安装在没有 MASM32 的分区上,只需将 buildx64 目录重命名为 MASM32。将其安装在另一个分区上是首选技术,因为 QE 的菜单和附件设置用于构建 64 位代码。

您仍然需要添加通常来自安装 vs2017 或 Win7 64 的早期版本的 Microsoft 二进制文件。在 bin64 目录中有一个名为“Microsoft_File_List.txt”的文件,其中显示了您需要的文件。该列表来自 Visual Studio 2017 版本的当前版本,如果这是您拥有的版本,请使用大小为 402,584 字节的“x86_amd64”目录中的 ML64。

在“buildx64”目录中有一个名为“makeall.bat”的批处理文件。必须运行此程序以构建所有库和包含文件。

它们是 Windows 程序集开发的黄金标准。

于 2018-09-19T17:12:59.430 回答