我正在尝试编译一个 gnome 应用程序,我很好奇运行autogen.sh
脚本时输出的含义:
~/Documents/Code/window-picker-applet $./autogen.sh
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --install --copy
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
data/Makefile.am:11: `%'-style pattern rules are a GNU make extension
data/Makefile.am:11: wildcard $(top_srcdir: non-POSIX variable name
data/Makefile.am:11: (probably a GNU make extension)
autoreconf: Leaving directory `.'
[Output trunkated...]
Run Code Online (Sandbox Code Playgroud)
为什么我会得到信息configure.ac: not using Gettext …
我正在处理一个具有自定义INSTALL
文件的项目。运行automake --add-missing
(或更准确地说,autoreconf -i
)将生成 GNU 默认INSTALL
文件,并用它覆盖我们的文件。
我怎样才能防止这种行为?我希望它要么根本不生成 GNUINSTALL
文件,要么用不同的名称创建它。
另外,我不想禁用automake
可能生成的任何其他文件。
编辑1:从automake
手册:
如果
--add-missing
给出该选项,automake
将添加INSTALL
文件的通用版本以及COPYING
包含当前版本的 GNU 通用公共许可证 [...] 文本的文件。但是,现有COPYING
文件永远不会被automake
.
它说现有COPYING
文件不会被覆盖,但没有说明该INSTALL
文件的任何内容,因此它似乎会被无条件覆盖。
编辑 2:根据要求,这是我的configure.ac
和Makefile.am
,以及autogen.sh
我们运行到autoreconf
项目的内容:
configure.ac
:
AC_INIT([program name], [version number], [bug report], [short name], [url])
AC_CONFIG_SRCDIR([Main/Source/main.cpp])
AM_PROG_AS
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_PROG_CXX
CFLAGS="$CFLAGS $SDL_CFLAGS "
LIBS="$LIBS $SDL_LIBS" …
Run Code Online (Sandbox Code Playgroud) 我编译了一个使用 autotools 作为构建系统的包 ( autoreconf
, ./configure
, make
, make install
)。
./configure
当包裹丢失时停止。
对于每个丢失的包,我会查找它的名称,然后要么查找,要么apt install package
在不可用的情况下从源代码编译它。
然后我./configure
再次运行,它告诉我另一个未满足的依赖项的名称。
如果只有一两个丢失的包,这是可以的。但是有19个!
libmspack-dev
libglib2.0-dev
libpam0g-dev
libssl-dev
libxml2-dev
libxmlsec1-dev
libx11-dev
libcunit1-dev
libxext-dev
libxinerama-dev
libxi-dev
libxrender-dev
libxrandr-dev
libxtst-dev
libgdk-pixbuf2.0-dev
libgtk-3-dev
libgtkmm-3.0-dev
libtool
dnet
Run Code Online (Sandbox Code Playgroud)
我想./configure
继续出错,并一次显示所有丢失的包,以便我可以一次安装它们。否则,它是漫长而痛苦的运行./configure
和apt install
19倍。