使用msvc命令行或msbuild编译dx3程序

从这里下载:https://github.com/microsoft/DirectX-Graphics-Samples

cl.exe /D "UNICODE"  /D "_UNICODE" *.cpp /EHsc -I C:\Users\54930\Downloads\DirectX-Graphics-Samples-master\Samples\Desktop\D3D12nBodyGravity\src\WinPixEventRuntime.1.0.161208001\Include\WinPixEventRuntime  dxgi.lib d3d12.lib d3dcompiler.lib dxguid.lib  user32.lib shell32.lib

错误:

error C2664: “DWORD GetModuleFileNameA(HMODULE,LPSTR,DWORD) ”: 无法将参数 2 从“WCHAR *”转换为“LPSTR”

参数:

/D "UNICODE"  /D "_UNICODE"

错误:

无法解析的外部符号 XXXX

需要加上lib ,lib 在.vcxproj和package.config里面看,如

 <AdditionalDependencies>dxgi.lib;d3d12.lib;d3dcompiler.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>

  <package id="WinPixEventRuntime" version="1.0.161208001" targetFramework="native" />

则需要命令nuget install来安装相关依赖包
需要注意的是里面%(AdditionalDependencies)是VS自带的环境变量,需要去网上找一下。我们这个项目里不带 user32.lib shell32.lib就会报错。

错误:

fatal error C1083: 无法打开包括文件: “pix3.h”: No such file or directory

同上,cl.exe编译时后加-I参数指定依赖包提供的头文件路径。

参考:
https://learn.microsoft.com/zh-cn/cpp/build/reference/cl-invokes-the-linker?view=msvc-170

实际上更简单的方法是直接在当前src目录下运行MSbuild.exe但需要修改.vcxproj一些地方

 <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>

修改为你的windows sdk版本

 <PlatformToolset>v143</PlatformToolset>

修改为你的msvc版本
然后就是在当前目录下新建packages,把nuget装的包放到当前目录下的packages里面,之后msbuild输出命令能看到完整的编译链接命令。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值