如何在CMake中使用版本号和共享库后缀(.so或.dylib)
How to use version numbers and shared library suffix (.so or .dylib) in CMake
在 CMake 中,我正在安装一个共享库,它可以在我的 Linux 机器上正常安装为 libname.so.1.5.0
但是,为了与 Mac 兼容,我必须支持使用任何共享库后缀。我将我的 CMake 设置为安装 ${libnameCMAKE_SHARED_LIBRARY_SUFFIX}.${OPENTRACING_VERSION_STRING}
,它再次在我的机器上运行但在 Mac 上不起作用。由于某种原因生成的 .dylibs 具有 libname.1.5.0.dylib
的命名约定
有什么办法吗
- 将命名约定更改为另一个?
- CMake检测系统架构并进行多次调用了吗?
- 任何其他想法将不胜感激!我从未使用过 OSX,所以不确定 .dylibs 是如何工作的。
据我所知,如果不在 if/else 分支中破解它们,这是不可能做到的。我决定将命令添加到我的 INSTALL
调用中,以直接移动我需要的文件。它最终复制了额外的不必要的文件,但这是我能想到的唯一可行的方法。
在 CMake 中,我正在安装一个共享库,它可以在我的 Linux 机器上正常安装为 libname.so.1.5.0
但是,为了与 Mac 兼容,我必须支持使用任何共享库后缀。我将我的 CMake 设置为安装 ${libnameCMAKE_SHARED_LIBRARY_SUFFIX}.${OPENTRACING_VERSION_STRING}
,它再次在我的机器上运行但在 Mac 上不起作用。由于某种原因生成的 .dylibs 具有 libname.1.5.0.dylib
的命名约定
有什么办法吗
- 将命名约定更改为另一个?
- CMake检测系统架构并进行多次调用了吗?
- 任何其他想法将不胜感激!我从未使用过 OSX,所以不确定 .dylibs 是如何工作的。
据我所知,如果不在 if/else 分支中破解它们,这是不可能做到的。我决定将命令添加到我的 INSTALL
调用中,以直接移动我需要的文件。它最终复制了额外的不必要的文件,但这是我能想到的唯一可行的方法。