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

CMake构建LLVM模块库报错:未指定模块目标的LIBRARY DESTINATION

问题分析与解决

错误原因

当使用LLVM提供的add_llvm_library创建MODULE类型的插件库时,LLVM的CMake脚本(AddLLVM.cmake)默认会自动为该目标生成安装规则。但你的配置中没有为这个模块库指定安装目录,导致CMake报错提示缺少LIBRARY DESTINATION。

解决方案

有两种可行的解决方式,根据你的需求选择:

方式1:为模块库指定安装路径

在add_llvm_library之后添加对应的install命令,明确指定模块库的安装目录。示例修改如下:

add_llvm_library(VirtinePass MODULE
    pass/pass.cpp
    pass/VirtineCompiler.cpp
    pass/command.cpp
    PLUGIN_TOOL
    opt
)

# 添加安装规则,路径可根据项目需求调整
install(TARGETS VirtinePass LIBRARY DESTINATION lib/llvm-plugins)

方式2:禁用自动安装规则

如果你不需要安装这个LLVM插件模块,可以在add_llvm_library中添加NO_INSTALL参数,让LLVM的CMake脚本跳过自动安装逻辑:

add_llvm_library(VirtinePass MODULE
    pass/pass.cpp
    pass/VirtineCompiler.cpp
    pass/command.cpp
    PLUGIN_TOOL
    opt
    NO_INSTALL  # 禁用自动安装规则
)

补充说明

  • 若想统一设置安装路径,可提前定义CMAKE_INSTALL_LIBDIR变量(如set(CMAKE_INSTALL_LIBDIR lib)),后续install命令可直接复用该默认路径。
  • LLVM的add_llvm_library针对不同库类型(STATIC/SHARED/MODULE)有差异化默认行为,其中MODULE类型默认绑定安装规则,这是它与原生add_library的核心区别之一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:43:21