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

macOS运行cmake报静态库SO_kolev未设置ARCHIVE DESTINATION如何修复

报错原因

该报错由两个配置问题共同导致:

  • 声明SO_${PROJECT_NAME}库目标时未显式指定库类型,CMake在macOS当前构建配置下将其识别为静态库,与注释中「创建共享库」的预期不符。
  • CMake的install(TARGETS)规则要求为不同类型的目标明确指定安装路径:可执行文件对应RUNTIME DESTINATION、.so/.dylib格式的共享库对应LIBRARY DESTINATION、.a/.lib格式的静态库/Windows导入库对应ARCHIVE DESTINATION。现有配置仅配置了前两类路径,缺少静态库必需的ARCHIVE DESTINATION配置,因此触发报错。
修复方案
  1. 显式声明共享库类型,匹配构建预期:
    修改add_library配置行,添加SHARED关键字:
    # 原配置
    # add_library(SO_${PROJECT_NAME} ${SOURCES} D_${PROJECT_NAME}.cxx)
    # 修改后
    add_library(SO_${PROJECT_NAME} SHARED ${SOURCES} D_${PROJECT_NAME}.cxx)
    
  2. 补全install规则的路径配置,同时修正原配置中${ROOTSYS}和$ENV{ROOTSYS}混用的问题:
    # Compose the install target
    install(TARGETS ${PROJECT_NAME} SO_${PROJECT_NAME} 
            RUNTIME DESTINATION bin
            LIBRARY DESTINATION $ENV{ROOTSYS}/lib
            ARCHIVE DESTINATION $ENV{ROOTSYS}/lib)
    

若你实际需要编译静态库版本,无需修改第一步的add_library配置,仅补充ARCHIVE DESTINATION对应的安装路径即可消除报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:06:23