0

Windowsにgtkとmingwをインストールし、次のコマンドでプログラムをコンパイルしました

    set VAR=-mms-bitfields -IC:/Windows/gtk+-bundle/include/gtk-2.0 -IC:/Windows/gtk+-bundle/lib/gtk-2.0/include -IC:/Windows/gtk+-bundle/include/atk-1.0 -IC:/Windows/gtk+-bundle/include/cairo -IC:/Windows/gtk+-bundle/include/gdk-pixbuf-2.0 -IC:/Windows/gtk+-bundle/include/pango-1.0 -IC:/Windows/gtk+-bundle/include/glib-2.0 -IC:/Windows/gtk+-bundle/lib/glib-2.0/include -IC:/Windows/gtk+-bundle/include -IC:/Windows/gtk+-bundle/include/freetype2 -IC:/Windows/gtk+-bundle/include/libpng14  -LC:/Windows/gtk+-bundle/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl

    gcc a.c %VAR%

そして、私は次のエラーを受け取りました

C:\Users\kiran\Desktop\gtk>gcc a.c -mms-bitfields -IC:/Windows/gtk+-bundle/inclu
de/gtk-2.0 -IC:/Windows/gtk+-bundle/lib/gtk-2.0/include -IC:/Windows/gtk+-bundle
/include/atk-1.0 -IC:/Windows/gtk+-bundle/include/cairo -IC:/Windows/gtk+-bundle
/include/gdk-pixbuf-2.0 -IC:/Windows/gtk+-bundle/include/pango-1.0 -IC:/Windows/
gtk+-bundle/include/glib-2.0 -IC:/Windows/gtk+-bundle/lib/glib-2.0/include -IC:/
Windows/gtk+-bundle/include -IC:/Windows/gtk+-bundle/include/freetype2 -IC:/Wind
ows/gtk+-bundle/include/libpng14  -LC:/Windows/gtk+-bundle/lib -lgtk-win32-2.0 -
lgdk-win32-2.0 -latk-1.0 -lgio-2.0-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgd
k_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lgli
b-2.0 -lintl
C:\Windows\MinGW\bin/ld.exe: cannot find -lgio-2.0-lpangowin32-1.0
collect2: ld returned 1 exit status
4

1 に答える 1

0

間隔の問題に同意します。 である必要が-lgio-2.0 -lpangowin32-1.0あり-lgio-2.0-lpangowin32-1.0ます。それでも同様のエラーが発生する場合は、-Lオプションを使用して gcc に渡したディレクトリで、見つからないライブラリが利用可能であることを確認してください (例: C:/Windows/gtk+-bundle/lib)

ところで、GTK によって推奨される構文を優先し、コピー/貼り付けの問題を防ぎます。

gcc $(pkg-config --cflags --libs gtk+-2.0) hello.c -o hello

.pc ファイルがあるディレクトリに追加pkg-configする必要がある場合があります。PATHPKG_CONFIG_PATH

于 2012-04-19T09:16:22.237 に答える