lan*_*tar 7 cmake shared-libraries software-packaging
有没有办法阻止CMake为共享库创建一个符号链接,比如libfoo.so当你使用so-versioning时(这意味着你会有类似的东西libfoo.so.0.8)?
我之所以问这个问题,是因为我有一个项目,我想让这个项目的多个版本并行安装.但是,如果多个包中存在类似符号链接的文件,则大多数包管理器会拒绝并行安装.
作为背景信息:我们正在使用CPack来构建软件包,最后我认为它是CPack的一个缺陷,你不能阻止这个符号链接,或者至少能够分离开发包和运行时包,例如debian.然而,到目前为止,我有一些幻想,只是阻止CMake创建符号链接可能比修补CPack更容易.
sak*_*kra 11
对于共享库,您可以使用install命令的NAMELINK_SKIP选项来防止生成版本化库文件的无版本库名称符号链接.生成的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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4120 次 |
| 最近记录: |