IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【Vulkan】- 001 VSCode Vulkan 环境搭建 -> 正文阅读

[开发工具]【Vulkan】- 001 VSCode Vulkan 环境搭建

一、环境

[VSCode   ](https://code.visualstudio.com/)
[MingW64  ](https://www.mingw-w64.org/downloads/)
[CMake    ](https://cmake.org/download/)
[GLFW     ](https://www.glfw.org/)
[GLM      ](https://github.com/g-truc/glm/)

二、准备

  1. 准备文件存放路径 。在根目录新建一个文件夹命名3rd(以后新建项目直接把3rd文件夹拖拽到VSCode方便使用),3rd文件夹下新建 includelib 两个文件夹。
  2. GLFW 复制GLFW文件夹下的include文件夹里面的glfw文件夹到3rd下的include里;复制GLFW下lib-mingw-w64文件夹到3rd下lib目录里重命名glfw。
  3. GLM 复制GLM里面的glm文件夹到3rd文件夹下的include里。
  4. Vulkan 复制VulkanSDK安装目录下的Include到3rd文件夹下的include重命名vulkan;复制VulkanSDK安装目录下的Lib文件夹到3rd文件夹下的lib里面重命名vulkan。
  5. 此时位于根目录下的3rd文件结构如下:
    3rd文件夹
    - include
    - - glfw
    - - glm
    - - vulkan
    - lib
    - - glfw
    - - vulkan

三、创建

1、VSCode新建C++项目:一个main.cpp空文件,一个CMakeLists.txt空文件。
2、把第二步准备的3rd文件夹拖拽到项目根目录下(不添加3rd到项目,直接在CMakeLists.txt中修改引用也行,只是编写代码的时候不能自动提示,无法跳转到相应函数):
在这里插入图片描述

3、编写CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)
set(PROJECT_NAME MyFirstVulkanDemo)
project(${PROJECT_NAME} VERSION 1.0.0)
set(CMAKE_CXX_STANDARD 11)

# 项目用到的三方库路径
set(3RD_PATH ${PROJECT_SOURCE_DIR}/3rd)

# 头文件
set(3RD_INCLUDE ${3RD_PATH}/include)
include_directories(${3RD_INCLUDE})

# 库文件
set(3RD_LIBS ${3RD_PATH}/lib)
FIND_LIBRARY(GLFW_LIB glfw3 ${3RD_LIBS}/glfw)
FIND_LIBRARY(VULKAN_1_LIB vulkan-1 ${3RD_LIBS}/vulkan)
link_libraries(${GLFW_LIB} ${VULKAN_1_LIB} )

# 执行编译命令
set(MAIN ${PROJECT_SOURCE_DIR}/main.cpp )
add_executable(${PROJECT_NAME} ${MAIN} )

# 复制 glfw3.dll 到编译目录下
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
    ${3RD_PATH}/lib/glfw/glfw3.dll
    $<TARGET_FILE_DIR:${PROJECT_NAME}>/
    )
    

4、编写main.cpp

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp>

#include <iostream>

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
    GLFWwindow* window = glfwCreateWindow(800, 600, "My First Vulkan Window", nullptr, nullptr);
    uint32_t extensionCount = 0;
    vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
    std::cout << extensionCount << " extensions supported" << std::endl;
    glm::mat4 matrix;
    glm::vec4 vec;
    auto test = matrix * vec;
    while (!glfwWindowShouldClose(window)) {
        glfwPollEvents();
    }    
    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}

以上代码保存,系统会自动新建一个build文件夹,进入build文件夹,分别执行命令:cmake … mingw32-make 最后运行生成的文件出现一个空白窗体,本次不调试用不到VSCode的json配置,至此Vulkan VSCode环境搭建测试完毕。

四、问题

1、编译出现undefined reference to `vkEnumerateInstanceExtensionProperties’,是vulkan-1库没有连接,正确连接后问题解决。

五、参考

TalesOV

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:19:54  更:2021-11-25 08:20:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:53:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码