我有一个完全用C编码的项目,它依赖于gnuplot,gtk,GNU科学库等。在我的机器上可以正常工作。
但是,如何将其打包为独立的可执行文件,该独立的可执行文件与平台和操作系统无关?
即使它适用于任何Linux平台,也可以。
答案 0 :(得分:0)
但是,我如何将其打包为一个独立的可执行文件,该文件是platfrom且与操作系统无关?
不能。至少标准C库必须在许多地方使用特定于OS的API(系统调用,库函数)。
即使它适用于任何Linux平台,也可以。
Linux是一个不断发展的目标,但是仍然可以通过静态链接所有库来实现-请参阅编译器的文档以了解如何实现。
答案 1 :(得分:0)
如果不重新编译,就无法在不同的操作系统上运行C程序。
话虽如此,如果您想在Linux之类的单一平台上编译程序,通常可以使用静态编译作为解决方案,但这不是GTK +处理的用例,因此您可以构建其他依赖项静态地,但是GTK +及其依赖项需要动态构建并单独运输。
通常,建议您使用RPM / DEB软件包将应用程序打包为所选的GNU / Linux发行版,但这仅适用于该发行版。
因此,我看到的最佳选择是使用flatpak捆绑您的依赖项,并在要安装应用程序的位置安装flatpak。