Compilation 为什么我能';在Ubuntu 12.04中编译Drwright

Compilation 为什么我能';在Ubuntu 12.04中编译Drwright,compilation,package,ubuntu-12.04,configure,Compilation,Package,Ubuntu 12.04,Configure,Drwright不包括在Ubuntu的主发行版中,但可以通过PPA获得。 以这种方式安装步骤: sudo add-apt-repository ppa:drwright/stable sudo apt-get update sudo apt-get install drwright 安装已成功完成 但是我想更正这个程序的源代码。我用 获取源代码 下载。首先,我尝试编译源代码,不做任何更改: ./configure 但是configure不执行: configure:

Drwright不包括在Ubuntu的主发行版中,但可以通过PPA获得。 以这种方式安装步骤:

   sudo add-apt-repository ppa:drwright/stable 
   sudo apt-get update
   sudo apt-get install drwright
安装已成功完成

但是我想更正这个程序的源代码。我用 获取源代码 下载。首先,我尝试编译源代码,不做任何更改:

   ./configure
但是configure不执行:

configure: error: Package requirements (
  glib-2.0 >= 2.31.13
  gio-2.0 >= 2.31.13
  gdk-pixbuf-2.0 >= 2.25.3
  gtk+-3.0 >= 3.0.0
  libcanberra-gtk3 >= 0
  libnotify >= 0.7
  x11) were not met:

No package 'glib-2.0' found
No package 'gio-2.0' found
No package 'gdk-pixbuf-2.0' found
No package 'gtk+-3.0' found
No package 'libcanberra-gtk3' found
No package 'libnotify' found
No package 'x11' found

为什么Drwring从PPA安装并成功运行,但我无法从源代码编译它?

以root用户身份在shell中尝试命令

$apt get安装glib-2.0 gio-2.0 gdk-pixbuf-2.0 gtk+-3.0 libcanberra-gtk3 libnotify x11-f-y

头文件 要从源代码构建程序,您不仅需要它所使用的库的已编译二进制文件。你也需要他们的帮助

在Debian、Ubuntu和其他基于Debian的操作系统中,头文件由名称以
-dev
结尾的包提供。通常是附加了
-dev
的二进制包名,或者是删除了一些版本号并附加了
-dev
的二进制包名

-dev
程序包(用于编译)不应与(用于调试)混淆。这里有一些是这些包裹做的

pkg配置包与包管理器的包 当您从源代码生成并且
/configure
告诉您缺少的软件包时,通常不会向软件包管理器检查安装了什么,缺少的软件包的名称通常不是您需要使用软件包管理器安装的软件包的确切名称。(是
/configure
脚本计算依赖项的常用方法--有关详细信息,请参阅和。)

确定要使用软件包管理器安装哪些软件包 要了解您确实需要安装哪些软件包,您可以查看以相同开头的软件包…或以
lib
开头,后跟由
/configure
吐出的“软件包”名称的软件包。以
lib
开头的包更常见(在Debian和基于Debian的系统上),因为大多数库包都是这样命名的

您可以(其他发行版通常也提供此功能)。或者你可以用它来找到它们。由于这将使用系统上本地存储的关于哪些包在何处的哪些版本中可用的信息,因此应首先更新该信息:

sudo apt-get update
然后键入一个命令来安装一个包,只需名称的开头——不管您认为自己知道多少。例如,对于
glib-2.0

ek@Del:~$ apt-get install libglib2
libglib2.0-0                libglib2.0-cil-dev
libglib2.0-0-dbg            libglib2.0-data
libglib2.0-0-dbgsym         libglib2.0-dev
libglib2.0-0-refdbg         libglib2.0-dev-dbgsym
libglib2.0-0-refdbg-dbgsym  libglib2.0-doc
libglib2.0-bin              libglib2-ruby
libglib2.0-bin-dbgsym       libglib2-ruby1.8
libglib2.0-cil              libglib2-ruby1.8-dbg
libglib2.0-cil-dbgsym
在那里,我没有运行我输入的命令。(如果我有,它就不会成功,因为没有名为
libglib2
的包,而且
apt-get-install
除非以root用户身份运行,否则不会成功。)

相反,我在行尾按了几下Tab键,得到了一个建议列表

从这些建议中,正确的建议是
libglib2.0-dev

如果你还不确定的话 有时候你不一定知道哪一个是对的;然后您可以使用apt cache show…来查找。例如,假设我想知道是否还需要
libglib2.0-cil-dev

ek@Del:~$ apt-cache show libglib2.0-cil-dev 
Package: libglib2.0-cil-dev
Priority: optional
Section: libs
Installed-Size: 174
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian CLI Libraries Team <pkg-cli-libs-team@lists.alioth.debian.org>
Architecture: i386
Source: gtk-sharp2
Version: 2.12.10-2ubuntu4
Replaces: libglib2.0-cil (<< 2.12.9-2)
Depends: libglib2.0-cil (= 2.12.10-2ubuntu4)
Filename: pool/main/g/gtk-sharp2/libglib2.0-cil-dev_2.12.10-2ubuntu4_i386.deb
Size: 2408
MD5sum: 50fa0825eb4d73593bdc8419c5fc9737
SHA1: f9659e85410505f7463a7117ebb92c70af6ad3aa
SHA256: 8f9d39465f2a1d5b4cc7832660ea53bacc681811ab2c80b57cad1655d4055b01
Description-en: CLI binding for the GLib utility library 2.12
 This package provides the glib-sharp assembly that allows CLI (.NET) programs
 to use the GLib utility library 2.12. This is mostly useful for the GTK+ and
 GNOME bindings.
 .
 GTK# 2.10 is a CLI (.NET) language binding for the GTK+ 2.10 toolkit
 .
 This package contains development files for the glib-sharp library, and should
 be used for compilation
Homepage: http://www.mono-project.com/GtkSharp
Description-md5: e7432bd7eb91c1c711c14150f81a3556
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

我的问题是:为什么Drwring从PPA安装并成功运行,但我不能从源代码编译它?非常有竞争力的答案+1
sudo apt-get update && sudo apt-get install libglib2.0-dev libgdk-pixbuf2.0-dev libgtk-3-dev libcanberra-gtk3-dev libnotify-dev libx11-dev