Я пытаюсь написать приложение, используя 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.2.0 я использую gtkglext-1.0, то это вызывает много предупреждений компилятора.
Как правильно настроить pkg-config?
Примечание: я установил brew gtk3 + и gtkglext
ОБНОВИТЬ:
howbrew установил gtkglext-1.2.0, но есть только gtkglext-1.0.pc & Доступен gtkglext-x11-1.0.pc. Сильфон это новая команда сборки
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/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:
ошибка: список параметров без
типы разрешены только в определении функции 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
* Дс,
^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:207:27:
ошибка: неизвестное имя типа ‘GdkGC’ void (* set_values) (GdkGC
* Дс,
^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:210:27:
ошибка: неизвестное имя типа ‘GdkGC’ void (* set_dashes) (GdkGC
* Дс,
^ /usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0/gdk/gdkgc.h:225:1:
ошибка: неизвестное имя типа ‘GdkGC’ GdkGC * gdk_gc_new
(GdkDrawable * drawable);
Brew — это OSX, верно? Я не очень разбираюсь в OSX dev, но в целом файлы pkg-config выгружаются в $ prefix / lib / pkgconfig, где префикс зависит от того, что вы передали скрипту configure, 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 соответственно.