2009-01-02 119 views
2

微軟將源代碼分發給不同Direct3D API的實現,以供硬件供應商,驅動程序開發人員等使用。該代碼使用永不過時的WDK(以前稱爲DDK)構建系統構建,實際上從不開箱即用。儘管廣泛使用,但這些代碼是半私人的,所以在更廣泛的網絡上從來沒有任何基本的有用信息可用。這已經足夠普遍了(在這個社區中,這是一個衆所周知的屁股痛苦),而且基本構建信息不夠敏感,應該可以在Google上發現。如何從源代碼構建Windows D3D9?

構建自述建議使用WDK和建築用命令build -cz -daytona。這令人困惑地吐出一堆輸出,但沒有任何內容。

通過這個,WDK 6001.18002的Vista,最新的d3def9源代碼分發在link子項目中失敗,「未能產生任何輸出 - 警告視爲錯誤」。

的XP d3dref9.dll也可能會造成混淆建立,經常無法找到D3D頁眉和類型。

+0

我知道這是一個較老的問題,但是您是否還記得您從哪裏獲得d3d9最可靠來源?我一直在尋找網絡,一直沒能找到它。謝謝。 – user1632018 2015-01-04 07:16:06

回答

2

一般來說,在構建來自Microsoft的直接來源漏洞時,通常會遇到兩個主要問題。

首先,build -cz -daytona命令或者是一個錯字或依賴於無證額外的外部配置。在此模式下構建會解析所有源,但從不指定要構建哪個平臺。由於指定了實際輸出的所有平臺dirsdaytonawin9x)都是「可選的」,所以實際上並沒有實際構建任何內容。解決方法是使用正確指定的命令build -cz daytona(在daytona上沒有「-」)。這應該解析來源,然後建立的一切。

過去,通常在開箱即用的構建設置中也存在問題。

新WDKs(例如在Vista)通常不能在具有寄生鏈接錯誤的最終鏈接步驟。通過添加:

LIBRARIAN_FLAGS = $(LIBRARIAN_FLAGS) /IGNORE:4001 

link/sources.inc構建文件。在此之後,源代碼的根目錄中的build -cz daytona應該構建並鏈接所有開箱即用的應用程序。

在Windows XP,這也是常見的有問題,如果使用舊的DDK(預Windows Server 2003中,即「XP」標記的DDK中)。特別是,這個重複項目依賴於外部存在的核心D3D9頭文件,這些不包含在XP DDK中。只需使用最新的WDK(從XP後的「DDK」更名)即可解決此問題。與命名相反,所有較新的WDK通常都是舊版本的超集,因此包括通過XP的平臺構建環境。

也可能有一些XP refrast源上市,其中包括它觸發了較新的WDK編譯器版本更迂腐的編譯器錯誤代碼的問題。然而,這些通常可以通過迭代編譯和源代碼調整來解決,以響應編譯器提出的任何簡單的安全/正確性錯誤。