在macOS上用CMake和vcpkg导入GLAD/GLFW3/ImGUI库失败求助
解决macOS上vcpkg + CMake找不到glad的问题
你的核心误区是默认认为所有vcpkg包都提供CONFIG模式的CMake配置文件,但glad的vcpkg端口在macOS平台采用的是模块查找模式而非CONFIG模式,同时跨平台构建时需要明确匹配Mac的架构triplet。
具体修复步骤:
1. 确保vcpkg依赖正确适配macOS
先清理现有build目录,更新vcpkg并重新安装适配Mac架构的依赖:
rm -rf ./build cd $VCPKG_DIR git pull # M系列Mac用arm64-osx,Intel Mac用x64-osx ./vcpkg install --triplet arm64-osx
2. 调整CMakeLists.txt的glad查找逻辑
将原来的:
find_package(glad CONFIG REQUIRED)
修改为:
find_package(glad REQUIRED)
glad的vcpkg端口未提供gladConfig.cmake配置文件,去掉CONFIG关键字后,CMake会自动切换到模块查找模式(使用Findglad.cmake)。
3. 构建时明确指定目标triplet
执行cmake命令时添加triplet参数,避免vcpkg使用与Mac架构不匹配的默认triplet:
# M系列Mac用arm64-osx,Intel Mac用x64-osx cmake -B ./build -S . "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=arm64-osx
补充说明:
- vcpkg的manifest模式(通过vcpkg.json)确实会自动管理依赖,但不同平台的包结构可能存在差异,部分包不会提供CONFIG模式的配置文件,需切换到模块查找模式。
- macOS平台必须注意架构匹配:M系列芯片对应
arm64-osx,Intel芯片对应x64-osx,错误的triplet会导致依赖包架构不兼容或找不到。
内容的提问来源于stack exchange,提问作者pom_jam
相关产品推荐
相关产品推荐

