1

我正在尝试从源代码构建女妖。我跑了autogen.sh,这是(一些)输出:

configure: error: Package requirements (gstreamer-0.10 >= 0.10.26
    gstreamer-base-0.10 >= 0.10.26
    gstreamer-plugins-base-0.10 >= 0.10.26
    gstreamer-controller-0.10 >= 0.10.26
    gstreamer-dataprotocol-0.10 >= 0.10.26
    gstreamer-fft-0.10 >= 0.10.26) were not met:

No package 'gstreamer-0.10' found
No package 'gstreamer-base-0.10' found
No package 'gstreamer-plugins-base-0.10' found
No package 'gstreamer-controller-0.10' found
No package 'gstreamer-dataprotocol-0.10' found
No package 'gstreamer-fft-0.10' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GST_CFLAGS
and GST_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Error: Could not run ./configure, which is required to configure banshee

我已经跑了sudo apt-get build-dep banshee,所以我不知道如何解决这个问题。

4

2 回答 2

8

有不同类型的依赖,构建时依赖运行时依赖。构建程序所需的依赖项通常比运行程序所需的依赖项更多。例如,运行一个程序可能需要一个共享库。然而,构建程序可能还需要一个头文件。当您安装 banshee 时,您通常会同时安装所有运行时依赖项,但不会安装构建时依赖项。由于您使用的是 apt-get,因此您应该调查需要安装哪些软件包才能获得所需的构建依赖项。

您收到的错误消息来自名为 pkg-config 的程序。它通常用于跟踪构建依赖项。例如,某些库可能在不同的系统上需要不同的编译器标志,因此 pkg-config 有一个知道如何使用的库目录。这里 Banshee 的构建系统调用 pkg-config 以找到使用 gstreamer 库的正确标志,但由于未安装 gstreamer 的开发文件,pkg-config 将不知道如何使用它们。一旦安装了使用 pkg-config 的软件包的开发文件,就可以通过运行 pkg-config 请求标志,例如,pkg-config --cflags --libs gstreamer-0.10将返回 gstreamer-0.10 库的预处理器、编译器和链接标志。

pkg-config 使用的文件通常命名为name-of-library.pc. 使用您的包管理器搜索pkg-config 找不到的所有包的文件,例如gstreamer-0.10.pc,等等。gstreamer-base-0.10.pc使用 apt-get 的系统通常有一个名为 apt-file 的工具(虽然不一定默认安装),它可用于向包管理器查询提供特定文件的包的名称,例如apt-file search gstreamer-0.10.pc. 许多发行版(例如DebianUbuntu)还具有支持基于文件名搜索包的 Web 界面。

您有时可以通过运行apt-get build-dep name-of-package. 它将安装构建程序所需的软件包。但是,这将安装构建包管理器分发的包版本的要求。您正在构建的版本可能具有不同的依赖项,但如果要求相同,那么通常应该可以满足您的需求。

于 2013-04-09T06:25:13.187 回答
1

显然,马库斯的回答很棒,但如果你想切入正题,答案是: sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

我现在将更新 Banshee 网站:完成

于 2013-05-06T20:13:33.920 回答