我正在尝试为 Unreal Engine 4 设置 AVX 支持。据我所知,它默认使用 SSE2 并且它是自己的 NMake,因此没有 Visual Studio 属性页面可以访问和添加 Arch。
我应该在哪里设置这个?
注意:尝试支持 AVX、AVX2 和 AVX512。
我正在尝试为 Unreal Engine 4 设置 AVX 支持。据我所知,它默认使用 SSE2 并且它是自己的 NMake,因此没有 Visual Studio 属性页面可以访问和添加 Arch。
我应该在哪里设置这个?
注意:尝试支持 AVX、AVX2 和 AVX512。
在 UE4 源代码中查找 VSToolChain.cs 文件。该文件正在为 MSVC 设置所有编译器标志。
在那里,搜索它在哪里做 /arch:AVX。它在某些 if() 中。要强制使用 AVX 或 AVX2 或 AVX512,只需将 /arch:AVX 或 /arch:AVX2 或 /arch:AVX512 放在该函数的顶部,以便始终添加标志。然后重新编译引擎。
Visual Studio 属性没有什么特别之处。它们只是 xml 项目文件中节点的“人类可读”版本,是编译器 (cl.exe) 和链接器 (link.exe) 的命令行参数。只需打开属性,设置 AVX 选项,然后切换到“命令行”选项卡即可查看赋予 cl.exe 的真实选项
因此,您只需要将选项添加到您的 nmake 文件/arch:[AVX|AVX2|AVX512]
中调用cl.exe的行。例如
cl /EHsc /arch:AVX /Fe$(DIR_BIN)\$(EXECUTABLE_NAME) /I$(DIR_INCLUDE) $(SRC_FILES)