Glslang VS 项目设置

Glslang VS Project Setup

我正在按照这个 quick tutorial and I am not sure how to do the project setup part for my pre-existing VS 2017 project that uses the LunarG Vulkan SDK which includes the glslang and SPIRV folders. I tried using the table found here 转换教程中的 cmake 命令;我能够包含 glslang 目录,但我无法弄清楚我应该添加什么到 properties->linker->input->additional dependencies for linking with glslang and SPIRV。我是否必须先以某种方式编译这些然后 link 给他们?在这种情况下我该怎么做?

Do I have to somehow compile these first then link to them? In which case how do I do that?

是的。如果你想在运行时而不是在构建时使用 glslang 工具,你需要先构建它们。 VulkanSDK 包含 glslang 源代码,但不包含二进制文件。由于 glslang 的接口是 C++,而不是像 Vulkan 这样的 C,因此生成适用于所有人的二进制文件基本上是行不通的。

您 link 的教程包括:

add_subdirectory(${LIB_DIRECTORY}/glslang)

这基本上意味着 "include this other CMake based project in my own",这反过来意味着它将具有与您自己的基于 CMake 的项目相同的构建设置。为了绕过 CMake,您需要从头开始为 glslang 构建一个 Visual Studio 项目。

我对您的建议是停止尝试将本教程放入您现有的 Visual Studio 项目中,只需使用 CMake 生成您的 VS 项目,以便您可以直接按照本教程进行操作。极不可能在基于 CMake 的 VS 项目中复制您在现有 VS 项目中的任何设置非常快

或者,您可以学习足够的 CMake 来为 glslang 创建项目并构建它,此时您将能够使用它创建的二进制文件作为您的 linker 输入,BUT 您需要确保 glslang 生成的项目中的项目设置与您自己的项目设置足够接近,尤其是运行时库和 32/64 位,并确保您没有跨依赖项混合和匹配发布和调试版本。

这里是构建 glslang 的简单方法,假设您已经安装了 CMake 并且正确安装了 VulkanSDK:

mkdir %VULKAN_SDK%\..\glslang
cd %VULKAN_SDK%\glslang
mkdir build
cd build
cmake .. -G "Visual Studio 15 Win64" -DCMAKE_INSTALL_PREFIX=%VULKAN_SDK%\..\glslang
cmake --build . --config Release 
cmake --build . --config Debug
cmake --build . --config Release --target INSTALL 
cmake --build . --config Debug --target INSTALL