- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目,其工件是两个动态库,比方说 libX.dylib
和 libY.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)
target1
和
target2
使用导致生成 libX.dylib 和 libY.dylib 的目标名称(即您在 ADD_LIBRARY 中使用的任何内容)。您可以使用变量
CMAKE_INSTALL_PREFIX
为了确定库最终在哪里......以上,如果你设置
CMAKE_INSTALL_PREFIX
至
/usr/local
,然后它会在
/usr/local/lib
中安装库
关于macos - 使用 CMake/Cpack 在 Mac OSX 中安装(分发)动态库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968176/
我为几个操作系统版本创建软件包,包括 RHEL7 和 RHEL8(或者几乎同样是 CentOS7 和 8)。 可以安装为 .el7 构建的包。在 .el8 上。但它通常不起作用(例如由于 undefi
我有一个 CMake由一个根组成的项目 CMakeLists和多个子CMakeLists (每个项目一个)。 我正在尝试使用 CPack为这些项目之一 (APP_client) 生成 .deb 文件。
我有一个 CMake 项目来构建多个共享库和工具,其中大部分位于子目录下: add_directory(libFirst) add_directory(libSecond) add_directory
我有一个使用 CMake 构建的相当复杂的项目。该项目使用 CPack 生成 .deb 包。当我刚刚用 make 构建项目时(即不构建 .deb)一个干净的构建大约需要 2 分钟。但是,当我使用 ma
我希望 cpack 仅采用某些组件。但他同时使用 run 和 deb 组件。我查看了很多资料来源。包括这个cpack component level install 。但我不明白我做错了什么。请告诉我
我使用 cpack (CMake 3.0.2) 从我的源构建 RPM。我在构建预安装目标时出错,它说: CPack Error: Problem running install command: "
对于附加到 CMake wiki 的示例 CMakeLists.txt。我还在下面添加了实际的 make 命令来创建基于组件的 TGZ。我很困惑,在文档中没有看到任何帮助。 CMakeLists.tx
我在使用 CPack 和 CMake 创建两个 debian 软件包时遇到了问题。我已经完成了 here 中的示例我确实设法创建了两个不同的 debian 包,但我希望它们每个都有自己的依赖项。生成的
EDIT =================== apr-1 是 apache 可移植运行时,我自己下载并编译以创建共享库(因此它不是由 cmake 制作的)。在目标系统上运行 CPack 后,我需要
我正在一个发行版中构建两个包: 运行时共享库包 开发库包 问题是在其中任何一个中包含正确的符号链接(symbolic link)。目前我使用: set_target_properties(myli
我正在使用 CMake 2.8.11.2、CPack 和 NSIS 编写安装程序。我到了需要调用包含的子安装程序(如 MSVCR)的地步。这是我的 CMakeLists.txt 的样子: set(CP
我正在使用 CPack WIX 生成器来创建安装程序。安装程序需要在目标系统上的 %ALLUSERSPROFILE%\foo\文件夹中安装一个文件。 我找不到在安装树 (C:\Program File
我想重命名 CPack (v2.8.7) 生成的安装程序文件,以包含在构建时从版本控制系统获取的版本号。看来这不能通过设置 CPACK_* 变量来完成,因为这发生在“cmake”时间。 我想要做的是运
因此,有多种方法可以在 CMake 处复制文件(和目录)。运行时(file(COPY ...)、configure_file(...) 和 add_custom_command() 都可以工作*),但
语境 我有一个使用 CMake 3.17 构建的托管 C++/CLR 库,并使用 CPack 打包到 NuGet 包中。生成的 nupkg 文件无法导入 C# 项目,因为包管理器发出以下错误:“[sn
我想使用 cmake 和 cpack 在 Windows 上为某些程序创建安装程序。我希望能够选择要安装的程序,并且所选程序应作为快捷方式显示在开始菜单中。这是一个简单的尝试。为每个程序完成一个组件但
我真的很难让 CPack 以我想象的方式运行。我在下面有一个小示例设置,在将它应用到更大的项目之前,我一直在努力工作。本质上,我正在尝试使用 fixup_bundle 来收集所有依赖项并将它们复制到打
看下面这个相当简单的 CMake 文件: cmake_minimum_required(VERSION 3.7) add_library(libdice SHARED lib.cpp) set_tar
我目前正在开发一个 cmake 项目,该项目使用通过 find_package 函数导入的外部库。我的问题围绕着 cpack 以及我应该如何将找到的包添加到 cpack 输出中。例如,如果我使用这个
我需要将库中的所有 header 定位到 /usr/include ,而不是 /usr/include/mylibname 。请注意,我想更改标题的位置。我想将我的 .so 文件保留在 /usr/li
我是一名优秀的程序员,十分优秀!