【问题标题】:Package gtkglext-1.2.0 was not found in the pkg-config search path在 pkg-config 搜索路径中找不到包 gtkglext-1.2.0
【发布时间】:2015-01-13 23:47:25
【问题描述】:

我正在尝试使用 c++ 编写应用程序。我决定使用 gtk3+ 和 gtk opengl 扩展。下面是我正在运行的构建命令

gcc -Wall `pkg-config --cflags "gtk+-3.0 gtkglext-1.2.0"`   -c -o main.o main.c

这会产生波纹管输出错误

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

如果我使用 gtkglext-1.0 而不是使用 gtkglext-1.2.0,那么这会导致很多编译器警告。

如何正确设置 pkg-config? 注意:我已经 brew 安装了 gtk3+ 和 gtkglext

更新:

howbrew 已安装 gtkglext-1.2.0,但只有 gtkglext-1.0.pc 和 gtkglext-x11-1.0.pc 可用。 Bellow 是新的构建命令

gcc -Wall `pkg-config --cflags "gtk+-3.0 gtkglext-1.0 gtkglext-x11-1.0"`   -c -o main.o main.c

这会导致很多编译错误,下面是一个示例

在 main.c:9 中包含的文件中:在来自 main.c 的文件中 /usr/local/Cellar/gtkglext/1.2.0/include/gtkglext-1.0/gtk/gtkgl.h:22: 在包含的文件中 /usr/local/Cellar/gtkglext/1.2.0/include/gtkglext-1.0/gdk/gdkgl.h:34: 在包含的文件中 /usr/local/Cellar/gtkglext/1.2.0/include/gtkglext-1.0/gdk/gdkglpixmap.h:25: 在包含的文件中 /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkpixmap.h:35:在 包含的文件 /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkdrawable.h:35: /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:198:23: 错误:没有参数列表 types 只允许在函数定义中使用 GdkColormap *GSEAL (colormap); ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:198:16: 错误:重复成员 'GSEAL' GdkColormap *GSEAL (colormap); ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:193:8: 注意:之前的声明在这里是 gint GSEAL (clip_x_origin); ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:205:27: 错误:未知类型名称 'GdkGC' void (*get_values) (GdkGC
*GC, ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:207:27: 错误:未知类型名称 'GdkGC' void (*set_values) (GdkGC
*GC, ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:210:27: 错误:未知类型名称 'GdkGC' void (*set_dashes) (GdkGC
*GC, ^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:225:1: 错误:未知类型名称 'GdkGC' GdkGC *gdk_gc_new
(GdkDrawable *drawable);

【问题讨论】:

    标签: c++ gtk3 pkg-config


    【解决方案1】:

    Brew 是 OSX,对吧?我对 OSX 开发人员不太了解,但通常 pkg-config 文件被转储在 $prefix/lib/pkgconfig 中,其中前缀取决于您传递给配置脚本、cmake、我们的任何底层构建系统的包在问题用途。您可以使用不同的前缀选项重新安装,也可以在构建应用时修改 PKG_CONFIG_PATH 环境变量,如下所示:

    PKG_CONFIG_PATH=$prefix/lib/pkgconfig:$ PKG_CONFIG_PATH gcc command here

    这会将 pkg-config 文件的正确位置添加到 PKG_CONFIG_PATH。我不能告诉你这些在哪里,因为我不知道 brew 和 OSX,但是一旦你找到它,你就是金子。这些文件应分别命名为 gtk+-3.0.pc 和 gtkglext-1.2.0.pc。

    【讨论】:

    • 我搜索并找不到 gtkglext-1.2.0.pc 或 gtk+-3.0.pc
    • Google 告诉我 Homebrew 安装到它自己的文件夹中,然后符号链接到 /usr/local,因此请检查那里的 lib/pkgconfig 目录应该包含正确的文件
    • 您还确定这些是专有名称吗?自制软件安装了哪些版本的库?谷歌还说 /usr/local/Cellar 目录也应该存在......如果我在 Linux 上遇到这个问题,我会使用 locate 命令(来自 mlocate 包)来查找要查看的目录。不确定自制软件是否有可用的,但如果有,它会有所帮助。还有which <command>,其中 是一个程序自制程序,提供您已安装的程序应该为您指明一个好的方向。
    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2022-01-25
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多