Tag: autotools

为什么shell脚本比较经常使用x $ VAR = xyes?

我经常在使用自动工具(autoconf,automake)的项目的构build脚本中看到这一点。 当有人想检查一个shellvariables的值时,经常使用这个习惯用法: if test "x$SHELL_VAR" = "xyes"; then … 简单地检查像这样的值有什么好处: if test $SHELL_VAR = "yes"; then … 我认为我必须有一些原因,我经常看到这一点,但我无法弄清楚它是什么。

自动工具入门

任何人都可以推荐一个人如何开始使用自动工具来创buildC项目?

为什么使用像Autotools这样的构build工具,我们可以编写自己的makefile?

最近,我把我的开发环境从Windows切换到了Linux。 到目前为止,我只用Visual Studio进行C ++开发,所以很多概念,比如make和Autotools ,对我来说都是新的。 我已经阅读了GNU makefile文档,并得到了几乎一个想法。 但是我对Autotools感到困惑。 据我所知,makefile用于使构build过程更容易。 为什么我们需要像Autotools这样的工具来创buildmakefile? 由于所有人都知道如何创build一个makefile,所以我没有真正使用Autotools。 标准是什么? 我们是否需要使用这样的工具,或只是手写的makefiles呢?

我应该在版本控制库中保存哪些由Autotools生成的文件?

我是新来的自动工具,我正在一个C项目。 我想将我的项目添加到git存储库。 我需要在我的版本控制系统中跟踪自动工具生成哪些文件,哪些应该被忽略?

使用automakeconfiguration脚本在64位Linux上构build32位?

我使用的是64位系统,但需要一组32位的二进制文件。 我必须将哪些选项传递给configuration脚本以生成32位/ x86生成文件?

gnu autotools:debugging/发布目标?

我一直在寻找这一段时间:我目前正在转换一个中等大小的程序autotools,来自一个基于eclipse的方法(使用makefiles) 我总是习惯于有一个“debugging”的版本,所有的debugging符号,没有优化,和“释放”生成,没有debugging符号和最佳优化。 现在我试图用autotools以某种方式复制这个,所以我可以(可能)做这样的事情: ./configure make debug 其中将有所有debugging符号和优化,并在哪里: ./configure make 会导致“发行”版本(默认) PS:我已经阅读了关于–enable-debug标志/特性,但是在我目前的(简单)设置​​中,使用它是无法识别的

Autoconf和Autotools的替代品?

我是GNU Autotools的用户(主要是Autoconf ,偶尔是Libtool )。 我正在进行一个项目,在这个项目中,可移植性将成为一个难点。然而,其余的团队与m4一起工作并不舒适。 我不是从一个人,而是从四个人那里收到的: 无论如何,也许有人可以推荐一些基于Python或PHP的东西? 我正在做一个更大的树的C端; 我可以肯定,Python或PHP 5将会出现,因为它们是先决条件。

错误:使用Libtool库,但'LIBTOOL'未定义

我正在尝试automake OrientDb C ++库,但得到一些错误。 Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined Makefile.am:10: The usual way to define 'LIBTOOL' is to add 'LT_INIT' Makefile.am:10: to 'configure.ac' and run 'aclocal' and 'autoconf' again. Makefile.am:10: If 'LT_INIT' is in 'configure.ac', make sure Makefile.am:10: its definition is in aclocal's search path. https://github.com/tglman/orientdb-c https://github.com/tglman/orientdb-c/wiki/Install 我已经configure.ac和Makefile.am已经定义。 我运行以下autotools aclocal会 和autoheader […]

进行安装,但不是默认目录?

我想运行“make install”,所以我有我需要的一切,但我想它安装在自己的文件夹中的东西,而不是系统的/ usr / bin等是可能的吗? 即使它引用/ usr / bin等工具?

CFLAGS vs CPPFLAGS

我知道CFLAGS(或CXXFLAGS for C ++)是用于编译器的,而CPPFLAGS是由预处理器使用的。 但是我还是不明白其中的差别。 我需要为#include包含的头文件指定一个包含path,因为#include是一个预处理指令,是预处理器(CPPFLAGS),我唯一关心的是什么? 在什么情况下,我需要给编译器一个额外的包含path? 一般来说,如果预处理器find并包含所需的头文件,为什么需要被告知额外的包含目录呢? 什么是CFLAGS? (在我的例子中,我发现这两个都允许我编译我的程序,这增加了混淆…我可以使用CFLAGS 或 CPPFLAGS来实现我的目标(至less在autoconf中)。