编译源代码时,无法成功编译奶酪。

我正在尝试从源代码安装Cheese,不想找软件包,因为我有一些需要应用的源代码更改,只要能够编译成功。我已经安装了libtool automake和autotools-dev。 当我尝试运行"./autogen.sh"时,出现了以下错误:
     ./autogen.sh 
**Warning**: I am going to run `configure' with no arguments.
If you wish to pass any to it, please specify them on the
`./autogen.sh' command line.

+ gtkdocize --copy
+ intltoolize --force --copy --automake
+ autoreconf --verbose --force --install -Wno-portability
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=no-portability -I m4 ${ACLOCAL_FLAGS}
configure.ac:189: error: macro YELP_HELP_INIT is not defined; is a m4 file missing?
m4/ax_require_defined.m4:35: AX_REQUIRE_DEFINED is expanded from...
configure.ac:189: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: error: echo failed with exit status: 1
autoreconf: aclocal failed with exit status: 1
+ exit 1

我在GNOME维基、GitHub页面和源代码中寻找编译描述以及在Google上寻找类似错误,但至今尚未找到解决方案。请注意,我只是尝试在应用更改之前编译未修改的源代码。
更新: 我安装了一些额外的软件包,并不是因为它们明确列出为依赖项,而是因为我在一个Arch论坛上读到的。
sudo apt-get install autoconf gtk-doc-tools yelp-tools appstream-util libx11-dev libgstreamer-plugins-bad1.0-dev libgnome-desktop-3-dev libclutter-gtk-1.0-dev libclutter-gst-3.0-dev libcanberra-gtk3-dev valac

现在它可以编译了,但是编译后的程序只能在源文件夹中运行。当调用Cheese时,安装的二进制文件会抛出这个错误:
$ cheese
cheese: error while loading shared libraries: libcheese.so.8: cannot open shared object file: No such file or directory

我正在使用Ubuntu Mate 15.10操作系统。

我不知道这是否有帮助,但是yelp.m4文件是由yelp-tools软件包提供的。 - steeldriver
你执行了make install吗?系统找不到libcheese.so.8,可能是因为LD_LIBRARY_PATH没有包含系统库路径,或者是make install没有将库复制到系统库路径,又或者是你选择了不同的安装位置来安装cheese应用程序。同时运行ldd cheese应该会显示它所期望的库以及是否能找到它们。如果你仍然遇到问题,请提供这些信息。 - Simon B
是的,我确实执行了sudo make install,但是libcheese.so.8失败了。也许我需要在make文件中查找libcheese.so.8被导出的位置。在非源码安装中,libcheese.so.7位于“/usr/lib/x86_64-linux-gnu/libcheese.so.7”。 - j0h
1个回答

使用apt-get build-dep cheese命令安装所有依赖项。