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

如何让CMake直接将共享库安装到指定路径而非lib子目录?

解决方案

当然可以直接配置CMake将共享库安装到${CMAKE_INSTALL_PREFIX}根目录,完全不需要修改LIBRARY_OUTPUT_PATH(该变量仅控制编译阶段的库输出目录,和安装路径互不影响)。

具体做法是在INSTALL命令中直接指定DESTINATION为空字符串或.(两者效果一致,均对应CMAKE_INSTALL_PREFIX的根目录),而不是默认的lib或${CMAKE_INSTALL_LIBDIR}。

举个完整的配置示例:

cmake_minimum_required(VERSION 3.25)
project(nvim_lua_module)

# 你的现有设置:编译产物输出到test目录
set(LIBRARY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/test")

# 创建共享库(假设你的源文件是nvim_module.c)
add_library(nvim_module SHARED nvim_module.c)

# 配置安装规则:直接安装到CMAKE_INSTALL_PREFIX根目录
install(TARGETS nvim_module
        LIBRARY DESTINATION ""
        # 如果需要兼容Windows,可追加RUNTIME DESTINATION "",但Archlinux下仅需LIBRARY
        )

使用时,执行安装命令指定Neovim模块的目标路径即可:

cmake --install . --prefix ~/.local/share/nvim/site/lua/your_module_name

这样共享库会直接被安装到你指定的Neovim模块目录下,而不会生成额外的lib子目录,完全符合路径要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:01:04