0

我第一次涉足 C/C++/GTK,但无法编译基本的 GTK+ 程序。我有sample.c。如果我尝试用

$ gcc sample.c -o sample 'pkg-config --cflags --libs gtk+-3.0'

它抱怨没有文件或目录。

Package gtk+3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+3.0' found

为了排除故障,我尝试过:

$ gcc sample.c -o sample

很明显,我得到 gtk/gtk.h 没有这样的文件或目录。

当我尝试

$ pkg-config --cflags gtk+-3.0

我明白了

-pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 

$ pkg-config --libs gtk+-3.0

给了我这个:

Package gtk+3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+3.0' found

我正在使用全新安装的 Mint 15,并且通过包管理器安装了 libgtk-3-dev,依赖项得到满足。我知道它的基本知识,但我无法完全理解我需要做什么。

编辑 自从上面的帖子以来,我已经安装了 gtk+3.0 包(安装了一堆其他包),现在我得到了这个:

$ pkg-config --libs gtk+-3.0

-lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0

现在我得到了错误

gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory

编辑 2: 在搞砸了很长时间之后,我运行了这个命令

$ pkg-config --libs --cflags gtk+-3.0

并将输出复制到下一个命令中:

$ gcc simple.c -o simple {pasted output of successful pkg-config command}

并且程序编译得很好。

$ gcc simple.c -o simple 'pkg-config --libs --cflags gtk+-3.0'

虽然仍然不起作用,但我收到以下错误:

gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory

解决方案?

4

2 回答 2

0

虽然仍然不起作用,但我收到以下错误:

gcc: error: pkg-config --libs --cflags gtk+-3.0: No such file or directory

更换你的

$ gcc simple.c -o simple 'pkg-config --libs --cflags gtk+-3.0'

$ gcc simple.c -o simple `pkg-config --libs --cflags gtk+-3.0`

于 2013-09-07T03:53:55.987 回答
0

好的,linuxquestions 的人让我理顺了。

` != ' (反引号与单引号不同)

我应该使用反引号而不是引号,也可以使用 $()

$ gcc simple.c -o simple $(pkg-config --args)

我将在命令行上阅读手册...:/

至于第一个问题(为什么 pkg-config --libs gtk+-3.0)给了我一个“在 pkg-config 搜索路径中找不到包 gtk+3.0”,我想我一定只安装了 libgtk-3-dev并且没有安装gtk+3.0。

于 2013-07-25T01:52:50.913 回答