我只想在 linux 中开发一个自动生成 auto(make/conf/...) 的 C 应用程序。我尝试使用 ede 和 anjuta 生成它,但它似乎没有生成 Makefile.am。所以,我尝试运行 automake,它说“ltmain.sh”没有找到。是否有一些易于生成 linux C/C++ 应用程序的基本构建文件。标准做法是什么?大多数人自己编写这些文件吗?
3 回答
生成一组非常简单的自动工具文件非常容易。这是一个(非常基本的)示例。运行这些之后,您应该在目录中获得 ltmain.sh 的副本,并且您将准备好运行配置脚本:
$ mkdir 示例 $ cd 样本 $ echo 'int main( void ) { return 0; }' > foo.c $ echo 'bin_PROGRAMS = foo' > Makefile.am $自动扫描 $ mv configure.scan configure.ac $ # 编辑 configure.ac,添加 AM_INIT_AUTOMAKE([foreign]) $ # 和 LT_INIT,设置项目名称和 bug-report-address $自动重新配置-ivf
请注意,在此示例中,确实不需要 libtool,因为该示例只是构建一个简单的应用程序。但是您询问了 ltmain.sh,这是 libtool 的事情,因此需要 LT_INIT 来解决问题的这一部分。如果要构建库,请将 bin_PROGRAMS 更改为 lib_LTLIBRARIES。
EDE 可以通过两种不同的方式处理您的 Automake 文件。如果您编写自己的 automake 文件,它会读取它们,并通过 UI 调整它们。
如果您愿意,可以让 EDE 为您完成所有工作。首先,创建您的第一个 C 文件,然后当它在磁盘上时,执行以下操作:
Mx ede-new RET Automake RET
然后从项目/项目选项菜单中,添加一个目标,如“程序”。
如果你填写你的 C 文件,你可以从菜单中选择 Project->Build->build currentproject,它会创建和设置 Automake 所需的一切,除了运行所需的所有其他 automake 命令。
最后,在某处有一个“运行”选项可以运行您的程序。
我会考虑根本不使用 autoconf 和 automake ——它们的复杂性超过了它们的好处,特别是如果你只针对 Linux。
请注意,例如,“git”根本不使用它们。相反,它只是有一个中等复杂(但易于理解)的 Makefile。