45

これが世界で最も単純な glib プログラムです。

#include <glib.h>

私はそれをコンパイルしようとするとgcc test.c、次のようになります:

test.c:1:18: error: glib.h: No such file or directory

したがって、適切なパッケージがあることを確認します。

# dpkg -l | grep libglib
ii  libglib-perl                              1:1.183-1                               Perl interface to the GLib and GObject libra
ii  libglib1.2-dev                            1.2.10-19build1                         The GLib library of C routines (development)
ii  libglib1.2ldbl                            1.2.10-19build1                         The GLib library of C routines
ii  libglib2.0-0                              2.20.1-0ubuntu2                         The GLib library of C routines
ii  libglib2.0-cil                            2.12.1-1ubuntu2                         CLI binding for the GLib utility library 2.1
ii  libglib2.0-data                           2.18.2-0ubuntu2                         Common files for GLib library
ii  libglib2.0-dev                            2.20.1-0ubuntu2                         Development files for the GLib library
ii  libglibmm-2.4-1c2a                        2.18.1-1                                C++ wrapper for the GLib toolkit (shared lib

次に、/usr/include の下にある「glib.h」を検索します。/usr/include/glib-1.2/glib.h と /usr/include/glib-2.0/glib.h の 2 つを取得します。だから私は試します:

$ gcc -I/usr/include/glib-2.0 -Wall test.c  
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
             from /usr/include/glib-2.0/glib.h:32,
             from test.c:2:
/usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory

(さらに約 10,000 個のエラーが削除されました)

glibconfig.hコンピューターのどこにもないようです。

私は今何をしますか?

4

5 に答える 5

54

glib は自分自身を隠す傾向があります... GCC はサブディレクトリを自動的に検索しないため、include ステートメントは機能せず、glib-1.2 または glib-2.0 で glib.h を確認できません。

GLIBマニュアルのCompiling GLib Applicationsページを読んでください... pkg-config --cflags glib-2.0GCCの正しいフラグを取得するなどのコマンドを使用します。

あなたがしようとしていることを行う標準的な方法は

% gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

シェルに pkg-config コマンドを「インプレース」で実行するよう指示するバックティックに注意してください。

于 2009-07-17T23:05:38.633 に答える
42
> > The canonical way to do what you are trying is

> % gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

申し訳ありませんが、ありません。これはよくある誤解であり、ELF ベースのシステム、特に Linux でほとんどの場合に機能します。標準的な方法は、次のように、cflags とライブラリを別々に、コマンド ラインの正しい従来の場所に渡すことです。

gcc -Wall -o test `pkg-config --cflags glib-2.0` test.c `pkg-config --libs glib-2.0`

pkg-config が --cflags と --libs オプションの両方を同時に受け入れるのは残念です。これは、この間違ったミームが死ぬことは決してないことを意味し、Linux でそれに慣れている人々は、試してみると困惑し続けることを意味します。他のプラットフォームでも同じです。

于 2010-02-15T10:56:30.707 に答える
8

@chris言ったように使用しますpkg-config

glibconfig.h is missing 

これは、このファイルがにないためですが、にあるため/usr/include/glib-2.0、このパス/usr/lib/glib-2.0.も含めるか、ファイルをにコピーする必要があります。/usr/lib/include/glib-2.0

于 2012-06-20T06:31:31.257 に答える
-3

apt-get build-dep is your friend -- nobody can remember all the packages you need to build something.

于 2009-07-17T23:20:21.600 に答える