You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下CLion+CMake引入GitHub上C++外部库GLM的方法

解决Windows下CLion+CMake引入GLM库的问题

GLM是纯头文件库,不需要编译,这是核心前提,先明确这点。下面针对你的问题逐一解决:

1. 是否需要手动下载GLM?

是的。Windows下如果未使用vcpkg等包管理器,直接下载GLM压缩包(选最新稳定版),解压后即可使用。

2. 是否要复制到项目结构?是否需要单独编译?

  • 可以将解压后的GLM核心目录(即包含glm子文件夹的根目录)复制到项目中,比如放在项目的lib文件夹下,方便项目版本管理与移植。
  • 不需要单独编译,GLM所有功能都通过头文件实现,直接包含即可调用。

3. 文件夹归类与CLion的External Libraries

  • 可自行组织项目目录,示例结构:
    your-project/
    ├── CMakeLists.txt
    ├── src/
    │   └── main.cpp
    └── lib/
        └── glm/          # 存放解压后的GLM根目录,内部包含glm子文件夹
    
  • 需要在CMake中标记该目录为包含目录,让编译器能找到头文件。
  • 无需手动将GLM放到CLion的External Libraries目录,只要CMake配置正确,CLion会自动识别并将该包含目录显示在External Libraries下。

4. CMakeLists.txt配置示例

之前你遇到#include找不到的问题,大概率是include路径配置错误,或头文件引用路径不对。以下是完整配置步骤:

步骤1:确认目录层级

确保GLM的路径为lib/glm/glm/,最内层的glm文件夹包含mat4x4.hpp等头文件。

步骤2:CMakeLists.txt编写

cmake_minimum_required(VERSION 3.20)
project(YourProjectName)  # 替换为你的项目名

set(CMAKE_CXX_STANDARD 17)  # GLM建议使用C++11及以上,选17兼容性更好

add_executable(YourProjectName src/main.cpp)

# 为目标添加GLM的包含目录,PRIVATE表示仅当前目标可见
target_include_directories(YourProjectName PRIVATE ${PROJECT_SOURCE_DIR}/lib/glm)

步骤3:正确引用头文件

注意:不能直接写#include <mat4x4.hpp>,该文件位于glm子目录下,正确引用方式:

#include <glm/mat4x4.hpp>

int main() {
    glm::mat4x4 matrix;  // 测试调用GLM类
    return 0;
}

常见问题排查

若仍找不到头文件,检查:

  • GLM目录层级是否正确,确认lib/glm/glm/mat4x4.hpp路径存在。
  • CMakeLists.txt中target_include_directories的路径是否正确,${PROJECT_SOURCE_DIR}是项目根目录的绝对路径,需指向正确位置。
  • 是否重新加载了CMake配置(点击CLion顶部工具栏的"Reload CMake Project"按钮)。

内容的提问来源于stack exchange,提问作者Glenn Jansson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:55:21