【OpenGL 学习笔记】01 - CLion 配置 CMake 运行初始 demo

环境

CLion, GLFW

代码

使用 GLFW 文档中第一个示例,显示一个用于渲染的窗口。

文件结构
当前源文件在根目录下

// PowerShell 中使用  Tree 命令
─.idea
├─cmake-build-debug
│  ├─.cmake
│  │  └─api
│  │      └─v1
│  │          ├─query
│  │          └─reply
│  ├─CMakeFiles
│  │  ├─3.25.2
│  │  │  ├─CompilerIdC
│  │  │  │  └─tmp
│  │  │  └─CompilerIdCXX
│  │  │      └─tmp
│  │  ├─First.dir
│  │  └─pkgRedirects
│  ├─libs
│  │  └─CMakeFiles
│  └─Testing
│      └─Temporary
├─include
│  └─GLFW
└─libs

CMake 配置

cmake_minimum_required(VERSION 3.25)
project(First)

set(CMAKE_CXX_STANDARD 17)

set(SOURCE_FILES main.cpp)

# 设置头文件目录
include_directories(include)

# 设置库目录和要链接的的库
link_directories(libs)
link_libraries(glfw3)

# 添加可执行文件
add_executable(First ${SOURCE_FILES})

# 链接静态库
target_link_libraries(First glfw3)

参考链接

[1] GLFW

### CLionCMake配置教程 在 CLion 中正确配置 CMake 是实现高效项目构建的关键。以下是关于如何在 CLion配置 CMake 并完成项目构建的相关说明。 #### 1. 指定 CMake 版本 为了确保兼容性和稳定性,需明确指定使用的最低 CMake 版本。这可以通过 `cmake_minimum_required` 命令来定义。例如: ```cmake cmake_minimum_required(VERSION 3.10) ``` 此命令告知 CMake 工具所需的最低版本为 3.10[^1]。 #### 2. 定义项目名称 通过 `project()` 函数命名当前项目。这是必要的基础步骤之一,用于标识整个工程的范围和上下文。 ```cmake project(MyProjectName) ``` 上述代码片段中的 `MyProjectName` 应替换为你实际的项目名称[^3]。 #### 3. 设置标准支持 对于现代 C++ 开发者来说,设定合适的 C++ 标准是非常重要的一步。可通过如下方式设置 C++ 编译器的标准版本: ```cmake set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS False) ``` 这里设置了 C++20 标准作为默认选项,并强制启用该标准而不允许扩展语法[^2]。 #### 4. 添加头文件路径 如果项目中有多个模块或者依赖外部库,则需要告诉编译器去哪里寻找这些额外资源。可以利用以下指令添加自定义目录到包含路径中: ```cmake include_directories(include) ``` 这条语句会把名为 “include” 的子目录加入到全局头文件搜索列表里。 #### 5. 处理源码文件 当面对大型工程项目时,手动罗列所有参与编译过程的 `.cpp` 和 `.h` 文件显然不现实也不推荐这样做。因此我们采用自动化手段收集它们: ```cmake file(GLOB_RECURSE SOURCES "src/*.cpp" "inc/*.h") ``` 这段脚本递归扫描 src 子树下的 cpp 文件以及 inc 下 h 文件并存储于变量 SOURCES 当中。 #### 6. 构建可执行程序或共享库 最后也是最重要的环节——创建最终产物(如应用程序)。下面展示了一个简单的例子用来生成单独的一个 exe 文件: ```cmake add_executable(my_app ${SOURCES}) ``` 如果有更复杂的场景比如动态链接库则改用 add_library() 来代替上面那条命令即可。 --- ### 示例完整的 CMakeLists.txt 文件结构 假设我们要建立一个基于 C++20 的控制台应用程式的环境,那么对应的 CMakeLists.txt 可能看起来像这样: ```cmake # 设定最小需求版本 cmake_minimum_required(VERSION 3.10) # 初始化项目名字叫作 DemoApp project(DemoApp) # 启动 cxx standard 至最新版即 c++20 set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS False) # 加入本地 include 路径供预处理器解析 header files. include_directories(include) # 自动探测所有的 .cpp/.hpp 文件位于 source directories 内部 file(GLOB_RECURSE SRC_FILES "sources/**/*.cpp") # 将找到的所有源档案打包成单一的应用程式 demoapp.exe (win) 或 ./demoapp(linux/mac). add_executable(demoapp ${SRC_FILES}) ``` 以上是一个典型的小型至中型规模项目的完整配置方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值