Должен ли я сначала каким-то образом скомпилировать их, а затем ссылаться на них?В каком случае, как мне это сделать?
Да.Если вы хотите использовать инструменты glslang во время выполнения, а не во время сборки, вам необходимо сначала собрать их.VulkanSDK содержит исходный код glslang, но не двоичные файлы.Поскольку интерфейс к glslang - это C ++, а не C, как Vulkan, создание двоичного файла, который будет работать для всех, по сути, не является началом.
Учебное пособие, на которое вы ссылаетесь, включает следующее:
add_subdirectory(${LIB_DIRECTORY}/glslang)
Что в основном означает «включить этот другой проект на основе CMake в мой собственный», что, в свою очередь, означает, чтоон будет иметь те же настройки сборки, что и ваш собственный проект на основе CMake.Чтобы обойти CMake, вам нужно с нуля создать проект Visual Studio для glslang.
Мой совет вам: прекратите пытаться встроить учебник в уже существующий проект Visual Studio и просто использовать CMake дляСоздайте свой проект VS, чтобы вы могли непосредственно следовать руководству.Крайне маловероятно, что какие-либо настройки, которые у вас есть в ранее существовавшем проекте VS, не могут быть реплицированы в проект VS на основе CMake очень быстро .
Кроме того, вы можете изучить достаточно CMake, чтобы создать проект для glslang и собрать его, после чего вы сможете использовать создаваемые им двоичные файлы в качестве входных данных компоновщика, НО вам нужно будет убедиться, что настройки проекта в сгенерированном glslang проекте достаточно близки к вашим собственным, в частности, Runtime Library и 32/64 bit-edness, и убедиться, что вы не смешиваете и не сопоставляете сборки выпуска и отладкичерез зависимость.
Вот простой рецепт построения 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