首页 > 解决方案 > 如何在 CMake 中使用版本号和共享库后缀(.so 或 .dylib)

问题描述

在 CMake 中,我正在安装一个共享库,它可以在我的 Linux 机器上安装为 libname.so.1.5.0
但是,为了与 Mac 兼容,我必须支持使用任何共享库后缀。我设置了要安装的 CMake,${libnameCMAKE_SHARED_LIBRARY_SUFFIX}.${OPENTRACING_VERSION_STRING}它再次可以在我的机器上运行,但不能在 Mac 上运行。由于某种原因生成的 .dylib 具有 libname.1.5.0.dylib 的命名约定
有什么办法可以吗

  1. 将任一命名约定更改为另一个?
  2. 有 CMake 检测系统架构并有多个调用吗?
  3. 任何其他想法将不胜感激!我从未使用过 OSX,所以不确定 .dylibs 是如何工作的。

标签: cmakeshared-librariesdylibcpack

解决方案


据我所知,如果不在 if/else 分支中破解它们,这是不可能做到的。我决定在我的INSTALL调用中添加命令,直接移动我需要的文件。它最终复制了额外的不必要的文件,但这是我唯一能想到的。


推荐阅读