VulkanSamples编译记录
按照BUILD.md说明,先安装依赖项
sudo apt-get install git build-essential libx11-xcb-dev \libxkbcommon-dev libwayland-dev libxrandr-dev
然后创建一个新文件夹build,在该目录下更新依赖项
cd VulkanSamples
mkdir build
cd build
python ../scripts/update_deps.py
会生成vulkan loader和头文件,以及一个cmake文件,接下来执行
cmake -C helper.cmake ..
或者
cmake -DCMAKE_BUILD_TYPE=Debug \-DVULKAN_HEADERS_INSTALL_DIR=“注意修改路径” \-DVULKAN_LOADER_INSTALL_DIR=“注意修改路径” \-DCMAKE_INSTALL_PREFIX=install ..
提示 spirv-tools 安装不成功,因为原来的下载链接失效了
可以从GitHub上手动下载SPIRV-Tools/docs/downloads.md at main · KhronosGroup/SPIRV-Tools · GitHub
然后把文件解压,拷到VulkanSamples/spirv-tools 目录下,再重新执行上面命令。
再进入VulkanSamples根目录下,执行make 或者 cmake --build 命令。
提示错误 draw_textured_cube 是一个目录,不能生成可执行文件,是因为文件和目录有重名。
可以改一下CMakeLists文件,换个名字,然后在重新执行make
--- a/API-Samples/CMakeLists.txt
+++ b/API-Samples/CMakeLists.txt
@@ -146,8 +146,8 @@ function(sampleWithSingleFile)set (sources ${sources} ${SAMPLE_NAME}2.frag.h)endif()endif()
- add_executable(${SAMPLE_NAME} ${sources})
- target_link_libraries(${SAMPLE_NAME} ${UTILS_NAME} ${XCB_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${VULKAN_LOADER} ${PTHREAD})
+ add_executable(${SAMPLE_NAME}_c ${sources})
+ target_link_libraries(${SAMPLE_NAME}_c ${UTILS_NAME} ${XCB_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${VULKAN_LOADER} ${PTHREAD})else()if (${SAMPLE_NAME} MATCHES spirv_assembly)assembly_to_spirv(${SAMPLE_NAME}.vert ${SAMPLE_NAME})
@@ -182,8 +182,8 @@ function(sampleWithSingleFile)set (sources ${sources} ${SAMPLE_NAME}2.frag.h)endif()endif()
- add_executable(${SAMPLE_NAME} WIN32 ${sources})
- target_link_libraries(${SAMPLE_NAME} ${UTILS_NAME} ${VULKAN_LOADER} ${WINLIBS})
+ add_executable(${SAMPLE_NAME}_c WIN32 ${sources})
+ target_link_libraries(${SAMPLE_NAME}_c ${UTILS_NAME} ${VULKAN_LOADER} ${WINLIBS})endif()endforeach(TARG)@@ -289,7 +289,7 @@ sampleWithSingleFile()if (NOT ANDROID)foreach (sample ${S_TARGETS})
- install(TARGETS ${sample} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ install(TARGETS ${sample}_c RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})endforeach(sample)