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

MacOS Intel下CMake构建LUAGLM时链接失败符号未找到问题

LUAGLM项目CMake构建链接错误修复方案

基础环境错误修复

构建初始阶段报的两个编译器检测错误是Xcode开发环境路径配置异常导致:

ld: library not found for -lSystem
ld: library not found for -lc++

先执行命令重置Xcode命令行工具路径:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

执行后运行xcrun --show-sdk-path验证,能正常输出MacOS SDK路径即修复完成。

glm.so链接未定义符号修复

链接阶段报glm_pushmat(lua_State*, glmMatrix const&)等符号找不到,核心原因是GLM绑定模块的编译源文件没有被完整加入构建列表:

  • 打开项目根目录CMakeLists.txt,找到声明glm动态模块的add_library(glm ...)段落
  • 从当前构建日志看,仅编译了libs/glm_binding/lglmlib.cpp,同目录下实现矩阵、向量等接口的cpp文件(如glm_matrix.cpp、glm_vec.cpp、glm_quat.cpp等)未被加入编译列表,把这些文件补全到源文件列表中,示例配置:
add_library(glm MODULE
    libs/glm_binding/lglmlib.cpp
    libs/glm_binding/glm_matrix.cpp
    libs/glm_binding/glm_vec.cpp
    libs/glm_binding/glm_quat.cpp
)
  • 给glm目标补充正确的头文件搜索路径和链接依赖:
target_include_directories(glm PRIVATE
    ${CMAKE_SOURCE_DIR}/libs/glm
    ${LUA_INCLUDE_DIR}
)
target_link_libraries(glm PRIVATE liblua_static)
  • macOS平台编译Lua动态模块需要追加链接参数,避免Lua符号查找错误:
set_target_properties(glm PROPERTIES
    LINK_FLAGS "-undefined dynamic_lookup"
    PREFIX ""
    SUFFIX ".so"
)
  • 所有配置修改完成后,删除原有build目录全量缓存,重新执行CMake配置与编译流程即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:36:21