我正在构建一个将在 Linux 系统上运行的应用程序。目前,构建过程由一个已经过于复杂的简单 Makefile 组成。
现在我想我缺少一些关于如何正确开发 Linux 应用程序的基本知识。我查到的资料是:
- 应用程序应该以某种方式具有
make install
将所有文件移动到正确位置的目标。 - 安装应用程序的常用位置是
/usr/bin
或/usr/local/bin
。 - 数据文件应放在
/usr/share
或/usr/local/share
分别放置。应该能够在构建过程中的某处配置路径前缀。
有了这些信息,我现在想知道:
- 如何正确配置前缀:构建过程是否应该将路径作为参数并将其硬编码到代码中?这对于测试也很重要——我应该能够以某种方式创建一个可运行的二进制文件,它只使用源文件夹中的数据文件,而不需要将所有东西都安装在某个地方。
- 我应该使用 autotools 还是 cmake 之类的?autotools 至少看起来不仅仅是一个构建系统,还可以处理前缀配置等。这个对吗?cmake如何比较?
- 这是合同工,我真的应该关心这些事情吗?该应用程序只能在定义明确的客户系统上运行,因此我可以提供一个包含所有必要文件的文件夹,并且可以从该文件夹中执行该应用程序。
因此,我基本上是在寻找一些好的资源,这些资源可以让我大致了解可能性和常见做法,并使我能够就是否以及如何调整构建和部署过程做出明智的决定。