【问题标题】:glib-networking cannot find gio/gio.hglib-networking 找不到 gio/gio.h
【发布时间】:2016-07-21 15:17:51
【问题描述】:

我正在尝试构建 glib-networking-2.40.1。我在制作步骤时遇到问题。

配置步骤

~/gstreamer/plugins/recommended/good/glib-networking-2.40.1 $ sudo ./configure --disable-glibtest --host=arm-linux-gnueabi --prefix=$DISCIMAGE/usr/local/ --includedir=$DISCIMAGE/usr/include/glib-2.0 --libdir=$DISCIMAGE/usr/lib/arm-linux-gnueabi --libdir=$DISCIMAGE/usr/lib --exec-prefix=$DISCIMAGE/usr /local/ --includedir=$DISCIMAGE/home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib-2.40.0/include --includedir=$DISCIMAGE/home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib- 2.40.0/glib --with-ca-certificates=/etc/ssl/ca-bundle.crt --includedir=$DISCIMAGE/home/ubuntu/gstreamer/plugins/recommended/good/gnutls-3.3.7/ -- includeir=$DISCIMAGE/home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib-2.40.0/ --with-gnutls=/home/ubuntu/gstreamer/plugins/recommended/good/gnutls-3.3.7/ -- libdir=/usr/lib/arm-linux-gnueabihf/ --libdir=/usr/lib --libdir=/usr/lib/arm-linux-gnueabi --libdir=/usr/lib/arm-linux-gnueabihf/ --libdir=/home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib-2.40 .0/gio/.libs/

那我试试

sudo 制作

我得到了错误

CC gnutls-module.lo gnutls-module.c:22:21:致命错误:gio/gio.h:没有这样的文件或目录

gio.h 位于

/home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib-2.40.0/gio/

包含在我的配置步骤中

我还有 libgio-2.0.so 位于

/usr/lib/libgio-2.0.so

/usr/lib/arm-linux-gnueabihf/gio/libgio-2.0.so.0

/usr/lib/libgio-2.0.so.0

所有这些都包含在配置中

pkg-config 给出

sudo pkg-config --libs --cflags gio-2.0

-pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgio-2.0 -lgobject-2.0 -lglib-2.0

任何帮助将不胜感激

【问题讨论】:

    标签: linux ubuntu gstreamer glib


    【解决方案1】:

    配置的--includedir--libdir 参数应该告诉你的包在哪里安装它自己的头文件和库,而不是在哪里找到其他头文件和库。您通常不需要使用这些参数。

    在编译 GLib 时犯了这个错误大概是为什么你的 gio.h 位于 /home/ubuntu/gstreamer/plugins/recommended/gstreamer/glib-2.40.0/gio/ 而不是 /usr/include/usr/local/include

    相反,pkg-config 的输出应该告诉您的程序在哪里可以找到头文件和库。如果你已经正确安装了你的包,那么 pkg-config 的输出应该是正确的。这个想法是,不是您研究所有库的位置并将这些路径传递给配置,而是每个库安装一个包含该信息的 pkg-config 文件,因此,如果您知道 pkg-config 文件的位置,那么您不需要需要知道其他任何事情。

    因此,您可能应该卸载、重新编译并重新安装您一直在编译的所有软件包,重新配置它们而不使用 --include--libdir 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2023-03-15
      • 2015-05-14
      • 2016-05-04
      相关资源
      最近更新 更多