在pkg配置搜索路径中未找到包gtkglext-1.2.0 我试图用C++编写一个应用程序。我决定使用gtk3+和gtk opengl扩展。下面是我正在运行的构建命令 gcc -Wall `pkg-config --cflags "gtk+-3.0 gtkglext-1.2.0"` -c -o main.o main.c

在pkg配置搜索路径中未找到包gtkglext-1.2.0 我试图用C++编写一个应用程序。我决定使用gtk3+和gtk opengl扩展。下面是我正在运行的构建命令 gcc -Wall `pkg-config --cflags "gtk+-3.0 gtkglext-1.2.0"` -c -o main.o main.c,c++,gtk3,pkg-config,C++,Gtk3,Pkg Config,这会产生波纹管输出错误 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.2.0,而

这会产生波纹管输出错误

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.2.0,而是使用gtkglext-1.0,那么这会导致大量编译器警告

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

更新:

如何BREW已安装gtkglext-1.2.0,但只有gtkglext-1.0.pc和gtkglext-x11-1.0.pc可用。下面是新的build命令

gcc -Wall `pkg-config --cflags "gtk+-3.0 gtkglext-1.0 gtkglext-x11-1.0"`   -c -o main.o main.c
这会导致许多编译错误,下面是一个示例

在main中包含的文件中。c:9:在从中包含的文件中 /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/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkpixmap.h:35:In 文件包括在 /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: 错误:参数列表中没有 类型仅允许在函数定义GdkColormap*GSEAL colormap中使用; ^/usr/local/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:198:16: 错误:重复成员“GSEAL”GdkColormap*GSEAL colormap; ^/usr/local/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:193:8: 注:之前的声明在此为gint GSEAL clip_x_原产地; ^/usr/local/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:205:27: 错误:未知类型名称“GdkGC”void*get_值GdkGC *gc, ^/usr/local/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:207:27: 错误:未知类型名称“GdkGC”void*设置值GdkGC *gc, ^/usr/local/ceral/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:210:27: 错误:未知类型名称“GdkGC”void*set_破折号为GdkGC *gc, ^/usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:225:1: 错误:未知类型名称“GdkGC”GdkGC*gdk\u gc\u new GdkDrawable*可绘制


Brew是OSX,对吗?我对OSX开发不太了解,但一般来说,pkg配置文件会转储到$prefix/lib/pkgconfig中,其中prefix取决于您传递给configure脚本cmake的内容,该脚本是该包使用的任何底层构建系统。您可以使用其他前缀选项重新安装,也可以在构建应用程序时修改PKG_CONFIG_PATH环境变量,如下所示:

PKG_CONFIG_PATH=$prefix/lib/pkgconfig:$PKG_CONFIG_PATH gcc命令


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

我搜索了gtkglext-1.2.0.pc或gtk+-3.0.pcGoogle告诉我homebrew安装到自己的文件夹中,然后符号链接到/usr/local,因此,请检查lib/pkgconfig目录,该目录应包含正确的文件。您确定这些是正确的名称吗?homebrew安装了哪些版本的LIB?谷歌还表示,a/usr/local/cillar目录也应该存在。。。如果我在Linux上遇到这个问题,我会使用mlocate包中的locate命令来查找目录。不确定自制软件是否有这种功能,但如果有,可能会有所帮助。另外,自制程序提供给您安装的程序应该为您指明一个好的方向。