如何在VS Code中配置可同时适配Mac与Windows的GLFW/GLAD开发环境
双系统通用GLFW/GLAD VS Code项目配置方案
该配置方案可实现同一套代码在Mac、Windows下无需修改直接编译运行,已在实际开发场景中验证可用,具体操作如下:
1. 统一项目目录结构
所有跨平台相关的资源按以下规则存放,避免系统间配置冲突:
- 根目录存放
CMakeLists.txt作为统一构建配置文件 src/目录:存放业务代码、统一生成的glad.c文件include/目录:存放GLAD头文件,双系统通用无需修改lib/目录:分子目录存放不同系统的GLFW预编译库lib/win32/:存放Windows平台的glfw3.lib、glfw3dll.lib等库文件lib/mac/:存放Mac平台的libglfw3.a、libglfw.3.dylib等库文件
build/目录:加入.gitignore,两个系统各自的编译产物都存在此目录,互不干扰.vscode/目录:直接提交到代码仓库,无需加入忽略列表,双系统可通用配置
2. 编写跨平台CMake配置
根目录的CMakeLists.txt通过系统判断自动加载对应平台的依赖,核心配置参考如下:
cmake_minimum_required(VERSION 3.16) project(GLFWCrossDemo) # 加载通用头文件,GLAD头文件全局通用 include_directories(${PROJECT_SOURCE_DIR}/include) # 条件判断匹配对应系统的依赖项 if(WIN32) link_directories(${PROJECT_SOURCE_DIR}/lib/win32) set(PLATFORM_LIBS glfw3 opengl32 gdi32 user32 kernel32) elseif(APPLE) link_directories(${PROJECT_SOURCE_DIR}/lib/mac) set(PLATFORM_LIBS glfw3 "-framework OpenGL" "-framework Cocoa" "-framework IOKit" "-framework CoreVideo") endif() # 编译目标 add_executable(${PROJECT_NAME} src/main.c src/glad.c) target_link_libraries(${PROJECT_NAME} ${PLATFORM_LIBS})
3. VS Code 通用配置
两个系统的VS Code均安装以下3个扩展即可,无需单独配置系统专属参数:
- C/C++
- CMake
- CMake Tools
.vscode目录下的配置文件统一使用VS Code内置变量,避免硬编码系统专属路径:
c_cpp_properties.json的includePath仅需保留${workspaceFolder}/include、${command:cmake.tools.includePath}等通用变量- 无需单独配置
tasks.json、launch.json,直接使用CMake Tools提供的编译、运行、调试指令即可
4. 跨系统使用流程
- Windows端:打开项目后选择对应MSVC/MinGW编译套件,点击CMake Tools的运行按钮直接启动
- Mac端:打开项目后选择Clang编译套件,直接点击运行即可,无需修改任何项目代码
注意事项
- GLAD仅需生成一次,两个平台共用同一份glad.c和头文件即可
- 两个系统的CMake大版本保持一致,避免语法不兼容问题
内容的提问来源于stack exchange,提问作者Santy Arellano
相关产品推荐
相关产品推荐

