【发布时间】:2018-02-11 04:19:12
【问题描述】:
我想在 Linux、OSX 和 Windows 上分发 C/C++ 项目的可执行文件和库。什么是首选的 CPack 生成器,即可能对大多数用户可用?在 Windows 上似乎只有 NSIS,但在 Linux 和 OSX 上有几种替代方案。 顺便说一句,也生成了一个源代码分发,所以理论上所有平台的用户都应该能够自己编译代码,但为了方便起见,我们希望提供预编译的二进制文件。
【问题讨论】:
-
所以重点是,虽然 Windows 用户习惯了它,但在 Linux 上,您通常会避免将所有库与可执行文件打包在一起。因此,拥有 Windows 风格的安装程序在 linux 世界中并不常见。您只需将您的软件打包为 分发包 在您的发行版的存储库中,这样您就可以(Debian 风格)
apt-get install matts_amazing_software或(Fedora 风格)dnf install matts_a...或(Gentoo 风格)emerge matts_a...。想想那些像 Windows 上的 .msi 安装程序这样的包,只是它们链接到发行版已经带来的库...... -
... 这样你就不会像在 Windows 上那样得到四百万个不同的
libdepency.dll。因此,对于普通的 linux 用户来说,安装软件是集中式的,您永远不会手动下载二进制安装程序。这样做的缺点是每个发行版的软件包需要不同,因为每个发行版都带有不同的库集。如果您真的想要,请查看 flatpack,但我个人不喜欢让 linux 软件生态系统像 Windows 系统那样分区、不兼容和损坏的想法。
标签: linux windows macos cmake cpack