首页 > 编程语言 >【Vulkan编程指南】教程1--在Mac下使用CMake搭建Vulkan开发环境

【Vulkan编程指南】教程1--在Mac下使用CMake搭建Vulkan开发环境

时间:2023-02-27 13:55:38浏览次数:64  
标签:Vulkan CMake -- directories nullptr demo1 glfw include

安装glfw

glfw下载目录下载预编译的Mac库文件:

解压后可以放置在 ~/sdk 目录下。

安装Vulkan

Vulkan下载路径下载 Vulkan SDK,默认安装目录,即为 ~/VulkanSDK

创建CMake项目

mkdir -p demo1
cd demo1
touch main.cpp CMakeLists.txt

main.cpp 的内容如下:

#define GLFW_INCLUDE_VULKAN

#include <GLFW/glfw3.h>
#include <iostream>

int main() {
    glfwInit();

    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
    GLFWwindow *window = glfwCreateWindow(1000, 600, "Vulkan window", nullptr, nullptr);

    uint32_t extensionCount = 0;
    vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);

    std::cout << extensionCount << " extensions supported\n";

    while (!glfwWindowShouldClose(window)) {
        glfwPollEvents();
    }

    glfwDestroyWindow(window);

    glfwTerminate();

    return 0;
}

CMakeLists.txt 的内容如下:

cmake_minimum_required(VERSION 3.24)
project(demo1)

set(CMAKE_CXX_STANDARD 17)

# glfw3的目录
include_directories(~/sdk/glfw/include)
link_directories(~/sdk/glfw/lib)

# Vulkan的目录
include_directories(~/VulkanSDK/1.3.239.0/macOS/include/)
link_directories(~/VulkanSDK/1.3.239.0/macOS/lib)

add_executable(demo1 main.cpp)

target_link_libraries(demo1 glfw3 vulkan "-framework Cocoa" "-framework IOKit")

编译并运行:

mkdir -p build && cd build && cmake ..
make
./demo1

标签:Vulkan,CMake,--,directories,nullptr,demo1,glfw,include
From: https://www.cnblogs.com/bfstudy/p/17159411.html

相关文章

  • python+playwright 学习-15.录制视频功能
    前言使用Playwright,您可以为测试录制视频。录制视频在测试结束时浏览器上下文关闭时保存。如果您手动创建浏览器上下文,请确保browser_context.close(),会在调用close......
  • 各类梯度下降算法的numpy实现
    layout:posttitle:深度学习subtitle:梯度下降算法实现description:梯度下降算法实现date:2022-10-25categories:deeplearningtags:codepy......
  • NSGA2多目标优化算法的MATLAB仿真
    1.算法描述       首先将一群具有多个目标的个体(解集,或者说线代里的向量形式)作为父代初始种群,在每一次迭代中,GA操作后合并父代于自带。通过非支配排序,我们将所有个......
  • 当一名程序员的准备工作-001
    1.做什么类型的程序员​ 在大家对于程序员这门行业的好奇时,并且想学习那就要知道程序员也有很多类型.比如:前端开发后端开发算法工程师AI智能游戏开发等等不管你......
  • 【ubuntu20.04】编译 v83x_pillow_0.7.2 会被链接到 /usr/include/x86_64-linux-gnu
    有点愚蠢,记录一下,先编过去,然后再把x86_64-linux-gnu移回来,估计是我环境变量脏了。juwan@juwan-n85-dls:~/v831/out/v831-sipeed/compile_dir/target/pypi/Pillow-7.2.0$......
  • 数据类型扩展及面试题讲解
    数据类型扩展及面试题讲解转义字符 ......
  • vulnhub靶场之WORST WESTERN HOTEL: 1
    准备:攻击机:虚拟机kali、本机win10。靶机:WorstWesternHotel:1,下载地址:https://download.vulnhub.com/worstwesternhotel/HotelWW.ova,下载后直接vbox打开即可。知识点:s......
  • Go组件库总结之介入式链表
    本篇文章我们用Go封装一个介入式的双向链表,目的是将链表的实现和具体元素解耦。文章参考自:https://github.com/brewlin/net-protocol1.元素的接口typeElementinterface......
  • 记一次 .NET某家装ERP系统 内存暴涨分析
    一:背景1.讲故事前段时间微信上有一位老朋友找到我,说他的程序跑着跑着内存会突然爆高,有时候会下去,有什么会下不去,怀疑是不是某些情况下存在内存泄露,让我帮忙分析一下,其实......
  • linux环境中,如何将一个大文件拆分成多个小文件?
    背景及需求说明: 要对主机上的数据进行迁移,压缩完成之后,发现有将近500G大小的数据,然后没有其他的磁盘了,其他的主机上的空间,也都只有200G左右,所以这个时候......