[英]DirectX12 with Premake5: Linking Directx12 Static Libraries
我改用premake5,而不是直接使用Visual Studio 2017。
這是我過去與Dx12鏈接的方式。 我將這些宏放在main.cpp中,效果很好。
#pragma comment(lib, "d3d12.lib")
#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3dcompiler.lib")
但是,建議我不要在源代碼中包含庫。 在將項目轉換為premake5時,我想知道處理這種情況的正確方法。
抱歉,我是premake5之類的工具的新手。 並且不確定如何進行。
更新1:我嘗試添加以下代碼來解決鏈接器錯誤。
print("Linking DX12 Libs")
libdirs {
os.findlib("d3d12.lib"),
os.findlib("dxgi.lib"),
os.findlib("d3dcompiler.lib") }
links { "d3d12.lib", "dxgi.lib", "d3dcompiler.lib" }
但是,我仍然收到鏈接器錯誤。
DLPDev主要*是正確的。
*指定庫時,應省略系統特定的修飾,例如前綴或文件擴展名。 Premake會根據目標平台自動合成正確的格式。 該規則的一個例外是Mac OS X框架,其中需要文件擴展名來標識它。
由於對過濾器功能的不了解,我犯了一個嚴重的錯誤。 在發布過濾器之后,我才調用links
。 僅在發布模式下鏈接了dx12庫。
-- This is all you need to link against dx12 there is no special sauce
-- You don't need to call libdirs or os.findlib for the dx12 libraries
-- This code works for both configurations since it is called before the filter function
links { "d3d12", "dxgi", "d3dcompiler" }
filter("configurations:Debug")
defines({ "DEBUG" })
symbols("On")
optimize("Off")
filter("configurations:Release")
defines({ "NDEBUG" })
symbols("On")`
TLDR:使用links
功能時,請注意不要包含文件擴展名。 並注意filter
功能的范圍
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.