gpt4 book ai didi

cmake - 如何防止 CMake 在安装时为共享库创建符号链接(symbolic link)?

转载 作者:行者123 更新时间:2023-12-04 10:54:45 25 4
gpt4 key购买 nike

有没有办法阻止 CMake 为共享库创建符号链接(symbolic link),如 libfoo.so当你使用 so-versioning 时(这意味着你会有类似 libfoo.so.0.8 的东西)?

我问这个的原因是我有一个项目,我想让该项目的多个版本可以并行安装。然而,如果像符号链接(symbolic link)这样的文件存在于多个包中,大多数包管理器会拒绝并行安装。

作为背景信息:我们正在使用 CPack 构建包,最终我认为这是 CPack 的一个缺陷,您无法阻止此符号链接(symbolic link)或至少能够分离开发包和运行时包,例如对于Debian。但是,到目前为止,我有这样的幻想,即完全阻止 CMake 创建符号链接(symbolic link)可能比修补 CPack 更容易。

最佳答案

对于共享库,您可以使用 NAMELINK_SKIP install command 的选项防止生成到版本化库文件的无版本库名称符号链接(symbolic link)。
生成的 CPack 安装程序将在安装时遵循该设置。库版本必须通过设置 SOVERSION 来指定共享库目标的属性:

以下示例代码概述了所需的步骤:

add_library(foo SHARED foo.c)

set_target_properties(foo PROPERTIES SOVERSION "0.8")

install(TARGETS foo LIBRARY DESTINATION lib NAMELINK_SKIP)

include(CPack)

关于cmake - 如何防止 CMake 在安装时为共享库创建符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com