Microsoft分发源代码以引用其不同Direct3D API的实现给硬件供应商,驱动程序开发人员等。这些代码使用非常神秘的WDK(以前称为DDK)构建系统构建,并且实际上从未使用过 - 框。虽然广泛使用,但此代码是半私有的,因此在更广泛的网络上从未提供任何基本的有用信息。这通常被充分使用(以及这个社区中众所周知的痛苦),并且基本构建信息不够敏感,应该可以在Google上发现。

构建自述文件建议使用WDK并使用 build -cz -daytona 命令构建。令人困惑的是,这会产生一堆输出但却没有构建任何内容。

除此之外,带有WDK 6001.18002的Vista,最新的d3def9源代码分发在 link 子项目中失败,并且“未能产生任何输出 - 警告被视为错误。”

XP d3dref9.dll也可能令人困惑,经常无法找到D3D标头和类型。

有帮助吗?

解决方案

在构建refrast源代码时,通常有两个主要问题,因为它们直接来自Microsoft。

首先, build -cz -daytona 命令是拼写错误或依赖于未记录的其他外部配置。在此模式下构建会解析所有源,但从不指定要构建的平台。由于指定实际输出的所有平台 dirs daytona win9x )都是“可选的”,什么都没有实际建成。对此的解决方案是使用正确指定的命令 build -cz daytona daytona 上没有' - ')。这应该解析源,然后实际构建一切。

在此过程中,开箱即用的构建设置通常也存在问题。

新的WDK(例如在Vista上)通常在最终链接步骤中失败,并出现虚假的链接器错误。通过添加以下内容可以轻松解决此问题:

LIBRARIAN_FLAGS = $(LIBRARIAN_FLAGS) /IGNORE:4001

link / sources.inc 构建文件。在此之后,源代码根目录中的 build -cz daytona 应该构建并链接所有开箱即用的东西。

在XP上,如果使用较旧的DDK(Windows Server 2003之前,即“XP”标记的DDK),也会出现问题。特别是,refrast项目依赖于外部存在的核心D3D9头文件,这些头文件不包含在XP DDK中。简单地使用最新的WDK(从XP后的“DDK”重新命名)解决了这个问题。与命名相反,所有较新的WDK通常都是旧版本的超集,因此包括通过XP的平台构建环境。

某些XP refrast源代码版本可能也存在问题,包括在较新的WDK编译器版本中触发更多迂腐编译器错误的代码。但是,这些通常可以通过迭代编译和源代码调整来轻松修复,以响应编译器引发的任何简单的安全/正确性错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top