我只想在linux中使用自动生成的auto(make / conf / ...)开发一个C app。我尝试用ede和anjuta生成它,但它似乎没有生成Makefile.am。所以,我尝试运行automake,并说它找不到“ltmain.sh”。是否有一些容易生成Linux C / C ++应用程序的基本构建文件。什么是标准做法?大多数人自己写这些文件吗?
答案 0 :(得分:4)
生成一组非常简单的autotool文件非常简单。这是一个(非常基本的)例子。运行这些之后,您应该在目录中获得ltmain.sh的副本,并且您将全部设置为运行configure脚本:
$ mkdir sample $ cd sample $ echo 'int main( void ) { return 0; }' > foo.c $ echo 'bin_PROGRAMS = foo' > Makefile.am $ autoscan $ mv configure.scan configure.ac $ # edit configure.ac, add AM_INIT_AUTOMAKE([foreign]) $ # and LT_INIT, set project name and bug-report-address $ autoreconf -ivf
请注意,在此示例中,libtool实际上不是必需的 这个例子只是构建一个简单的应用程序。但你问过 ltmain.sh,这是一个libtool的东西,所以需要LT_INIT 解决问题的那一部分。如果你想建立 一个库,将bin_PROGRAMS更改为lib_LTLIBRARIES。
答案 1 :(得分:1)
EDE可以通过两种不同的方式处理您的Automake文件。如果您编写自己的automake文件,它将读取它们,并通过UI调整它们。
如果您愿意,可以让EDE为您完成整件事。首先,创建您的第一个C文件,然后当它在磁盘上时,执行:
M-x ede-new RET Automake RET
然后从项目/项目选项菜单中添加目标,如“程序”。
如果你填写你的C文件,你可以从菜单中选择Project-> Build-> build currentproject,它将创建和设置Automake所需的一切,除了运行所有的需要misc automake命令。
最后,在运行程序的地方有一个“运行”选项。
答案 2 :(得分:-4)
我认为根本不使用autoconf和automake - 它们的复杂性超过了它们的好处,特别是如果你只针对Linux。
请注意,例如,“git”根本不使用它们;相反,它只是一个中等复杂(但可理解)的Makefile。