gpt4 book ai didi

macos - 使用 CMake/Cpack 在 Mac OSX 中安装(分发)动态库的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 18:44:16 25 4
gpt4 key购买 nike

我有一个项目,其工件是两个动态库,比方说 libX.dyliblibY.dylib (或 .so 对于 linux 发行版)。没有可执行文件。

现在我想分发这些库。由于我已经用CMake编译过了,所以看了CPack,成功生成了.tgz.deb用于 Linux 的软件包。但是,对于 Mac OSX,我不知道和 CPack Wiki 关于它的 generators对我帮助不大。我设法生成了一个 PackageMaker 包,但正如 this packagemaker howto 中明确说明的那样,使用此实用程序时没有卸载选项。然后我读了一点关于 Bundles ,但我特别迷茫,因为我没有可执行文件。

问题:使用 CPack 为 Mac OSX 生成包的正确方法是什么?

我的理想情况是可以像捆绑包一样轻松安装的东西,也可以像 debian/ubuntu 中的 deb 文件一样轻松安装。

谢谢你的帮助

编辑
还有一个细节:这些库之一的代码没有开放,所以我不能指望用户做 cmake; make; make install
这就是为什么我想要 .deb、.tar.gz、bundle 或任何其他文件的原因。

最佳答案

这取决于您是想以 UNIX-y 方式安装它(这完全可以,实际上我作为 Mac 用户的偏好)还是想将其安装为 Mac OS X 框架。

要以 UNIX-y 方式安装库,您可以使用:

INSTALL(TARGETS target1 target2 DESTINATION lib)

在上面,替换 target1target2使用导致生成 libX.dylib 和 libY.dylib 的目标名称(即您在 ADD_LIBRARY 中使用的任何内容)。您可以使用变量 CMAKE_INSTALL_PREFIX为了确定库最终在哪里......以上,如果你设置 CMAKE_INSTALL_PREFIX/usr/local ,然后它会在 /usr/local/lib 中安装库

编辑
根据您的更新,您可能会发现 Component Install with CPackCPack Mac OS X PackageMaker Generator感兴趣。由于您要将库安装到系统中,因此您应该使用 PackageMaker 生成器。如果您只是分发应用程序,那么创建“.app”包并将其分发到“.dmg”将是正确的做法。当您安装 Xcode Developer Tools 时,PackageMaker 安装在 Mac OS X 上。要将“.app”包打包到“.dmg”中,您可以使用 Mac OS X 磁盘实用程序应用程序或其关联的命令行工具。

关于macos - 使用 CMake/Cpack 在 Mac OSX 中安装(分发)动态库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968176/

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