我想安装 gtk+ 2.16.5,所以我还安装了 glib、pango 和 cairo。除了 cairo 之外,其他都运行良好。
一开始我在配置的时候遇到了一个错误:
请求“cairo >= 1.6”,但 cairo 版本是 1.4.12
我毫无问题地安装了最新版本的 cairo,我重新启动了计算机,当我再次开始配置时,发生了同样的事情,并显示了同样的错误。
我还可以看到这一点:
如果您在非标准前缀中安装了软件,请考虑调整 PKG_CONFIG_PATH 环境变量。
或者,您可以设置环境变量 BASE_DEPENDENCIES_CFLAGS 和 BASE_DEPENDENCIES_LIBS 以避免调用 pkg-config。
有关更多详细信息,请参阅 pkg-config 手册页。
有人能帮助我吗?谢谢。
答案1
你说的“我安装了最新版本的 cairo,没有任何问题”是什么意思?
您是否安装了 slackware 包或者是否解压了预先构建的存档或者是否从源代码进行了编译?
我怀疑你做了后一种事情。如果你只是下载了一个存档并将其解压到某个地方,包管理器就不会知道。基于源代码的编译和安装也是如此。
混合使用源和包管理软件更加困难。如果您没有理由使用“最新”的 gtk+,则只需使用预打包的 gtk+。现在 slackware 13 已经发布,您甚至可以检查它是否具有最新的 gtk+,然后升级到该版本。
答案2
您没有提到任何有关如何安装 cairo 的详细信息。如果您以通常的方式从源代码安装它:configure;make;make install,那么它会转到 /usr/local,但 Slackware 使用 --prefix=/usr。这可能是原因,但这只是一个假设。
答案3
下面是我在 slackware 上编译 gtk+ 时使用的脚本:
#!/bin/bash
INSTALL_DIR=/opt/gtk
GLIB_VER=2.21.1
ATK_VER=1.26.0
CAIRO_VER=1.8.6
PANGO_VER=1.24.2
GTK_VER=2.17.1
GOOCANVAS_VER=0.15
mkdir -p ${INSTALL_DIR}
CPPFLAGS="-I${INSTALL_DIR}/usr/include"
LDFLAGS="-L${INSTALL_DIR}/usr/lib"
PKG_CONFIG_PATH="${INSTALL_DIR}/usr/lib/pkgconfig"
LD_LIBRARY_PATH="${INSTALL_DIR}/usr/lib"
PATH="${INSTALL_DIR}/usr/bin:$PATH"
export CPPFLAGS LDFLAGS PKG_CONFIG_PATH LD_LIBRARY_PATH PATH
#glib
tar zxvf glib-${GLIB_VER}.tar.gz
cd glib-${GLIB_VER}
./configure --prefix=${INSTALL_DIR}/usr --sysconfdir=${INSTALL_DIR}/etc && make && make install
cd ..
#atk
tar zxvf atk-${ATK_VER}.tar.gz
cd atk-${ATK_VER}
./configure --prefix=${INSTALL_DIR}/usr --sysconfdir=${INSTALL_DIR}/etc && make && make install
cd ..
#cairo
tar zxvf cairo-${CAIRO_VER}.tar.gz
cd cairo-${CAIRO_VER}
./configure --prefix=${INSTALL_DIR}/usr --sysconfdir=${INSTALL_DIR}/etc && make && make install
cd ..
#pango
tar zxvf pango-${PANGO_VER}.tar.gz
cd pango-${PANGO_VER}
./configure --prefix=${INSTALL_DIR}/usr --sysconfdir=${INSTALL_DIR}/etc && make && make install
cd ..
#gtk
tar zxvf gtk+-${GTK_VER}.tar.gz
cd gtk+-${GTK_VER}
./configure --prefix=${INSTALL_DIR}/usr --sysconfdir=${INSTALL_DIR}/etc && make && make install
cd ..
将此脚本和所需文件放在同一目录中。对于 gtk 2.17.1,所需文件为:
glib-2.21.1.tar.gz
atk-1.26.0.tar.gz
cairo-1.8.6.tar.gz
pango-1.24.2.tar.gz
gtk+-2.17.1.tar.gz
你必须编译它这个命令如果你想让它工作。另外,新的 gtk 版本将安装在 /opt/gtk 中,因此它不影响默认安装的 gtk。
如果您想编译(并运行)使用新 gtk 的程序,您只需将其放入 /home/user/.bashrc 文件中:
INSTALL_DIR=/opt/gtk
PKG_CONFIG_PATH="${INSTALL_DIR}/usr/lib/pkgconfig"
LD_LIBRARY_PATH="${INSTALL_DIR}/usr/lib"
PATH="${INSTALL_DIR}/usr/bin:$PATH"
export PKG_CONFIG_PATH LD_LIBRARY_PATH PATH
就是这样。