2014-02-12 2 views
3

Привет Я использую gtkmm в проекте XCode, и мне интересно, как я могу включать заголовки без использования командной строки и добавления их вручную. Есть ли способ использовать pkgconfig в XCode, не делая этого таким образом, то есть некоторые дополнительные параметры или что-то еще?XCode с pkg-config

Любая помощь будет оценена по достоинству.

ответ

1

Может быть выглядеть here

Вы можете использовать pkg-config, если .pc файл для этого пакета присутствует. Эти файлы обычно расположены по адресу /usr/share/pkgconfig. Вы также можете подготовить свой .pc-файл, написав каталог файлов заголовков и каталог библиотеки в указанном формате.

Просто посмотрите содержимое файла .pc, и это интуитивно понятно.

0

Я знаю, что это старый, но я смог получить gtkmm, работающий в Xcode 6, поэтому решил, что поделюсь.

Предполагая, что gtkmm и Xcode 6 установлены на вашем Mac, следующие шаги должны позволить вам добавить gtkmm в существующий проект Xcode (C++).

Пробег pkg-config <pkgconfig file name> —cflags —libs в терминале. Эта команда возвращает флаги компоновщика/флаги компилятора Xcode. У меня есть gtkmm 2.24.2_1, установленный на моей машине, поэтому для меня команда pkg-config gtkmm-2.4 —cflags —libs для меня. Я не могу гарантировать, что это работает для других версий.

Чтобы определить имя вашего файла .pc, шахта находится внутри /usr/local/Cellar/gtkmm/2.24.4_1/lib/pkgconfig

Терминал команды должен вернуть все необходимые флаги, вот что шахта возвращается:

-D_REENTRANT -I/USR /local/Cellar/gtkmm/2.24.4_1/include/gtkmm-2.4 -I/usr/local/Cellar/gtkmm/2.24.4_1/lib/gtkmm-2.4/include -I/usr/local/Cellar/atkmm/2.22 .7/include/atkmm-1.6 -I/usr/local/Cellar/gtk +/2.24.28_2/include/gtk-unix-print-2.0 -I/usr/local/Cellar/gtk +/2.24.28_2/include/gtk -2.0 -I/usr/local/Cellar/gtkmm/2.24.4_1/include/gdkmm-2.4 -I/usr/local/Cellar/gtkmm/2.24.4_1/lib/gdkmm-2.4/include -I/usr/local/Cellar/glibmm/2.44.0/include/giomm-2.4 -I/usr/local/Cellar/glibmm/2.44.0/lib/giomm-2.4/include -I/usr/local/Cellar/pangomm/2.36.0/include/pangomm-1.4 -I/usr/local/Cellar/pangomm/2.36.0/lib/pangomm-1.4/include -I/usr/local/Cellar/glibmm/2.44.0/include/glibmm- 2.4 -I/usr/local/Cellar/glibmm/2.44.0/lib/glibmm-2.4/include -I/usr/local/Cellar/cairomm/1.11.2_1/include/cairomm-1.0 -I/usr/local/Cellar/cairomm/1.11.2_1/lib/cairomm-1.0/include -I/usr/local/Cellar/libsigC++/2.4.1/include/sigC++ - 2.0 -I/usr/local/Cellar/libsigC++/2.4.1/lib/sigC++ - 2.0/include -I/usr/local/Cellar/gtk +/2.24.28_2/include/gtk-2.0 -I/usr/local/Cellar/gtk +/2.24.28_2/lib/gtk-2.0/include - I/usr/local/Cellar/pango/1.36.8_1/include/pango-1.0 -I/usr/local/Cellar/atk/2.16.0/include/atk-1.0 -I/usr/local/Cellar/cairo/1.14.2_1/include/cairo -I/usr/local/Cellar/pixman/0.32.6/include/pixman-1 -I/usr/local/Cellar/fontconfig/2.11.1/include -I/usr/local/Подвал/freetype/2.5.3_1/include/freetype2 -I/usr/local/Подвал/freetype/2.6 _1/include/freetype2 -I/usr/local/Cellar/libpng/1.6.17/include/libpng16 -I/usr/local/Cellar/gdk-pixbuf/2.30.8/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.17/include/libpng16 -I/usr/local/Cellar/glib/2.44.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.44.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -L/usr/local/Cellar/gtkmm/2.24.4_1/lib -L/usr/local/Cellar/atkmm/2.22.7/lib -L/usr/local/Cellar/gtk +/2.24.28_2/lib -L/usr/local/Cellar/gtkmm/2.24.4_1/lib -L/usr/local/Cellar/glibmm/2.44.0/lib - L/usr/local/Cellar/pangomm/2.36.0/lib -L/usr/local/Cellar/glibmm/2.44.0/lib -L/usr/local/Подвал/cairomm/1.11.2_1/lib -L/usr/local/Cellar/libsigC++/2.4.1/lib -L/usr/local/Cellar/gtk +/2.24.28_2/lib -L/usr/local/Cellar/pango/1.36.8_1/lib -L/usr/местный/Подвал/атк/2.16.0/lib -L/usr/local/Cellar/cairo/1.14.2_1/lib -L/usr/local/Cellar/gdk-pixbuf/2.30.8/lib -L/usr/local/Подвал/glib/2.44. 1/lib -L/usr/local/opt/gettext/lib -lgtkmm-2.4 -latkmm-1.6 -lgtk-quartz-2.0 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 - lsigc-2.0 -lgtk-quartz-2.0 -lgdk-quartz-2.0 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

Теперь в Xcode откройте файл проекта и выберите цель, в настройках сборки затем нужно скопировать флаги, которые вы получили от терминала в «Другие флаги компоновщика» и «Другие флаги с»

на данный момент вы должны иметь возможность запускать, компилировать, строить и т. д. Проекты на C++, которые используют gtkmm в Xcode.

Ответ основан на деталях от ответа user2618142 в + link

Также как и в сторону, если вы получаете сообщение об ошибке

не соответствующий конструктор для инициализации «GTK :: Main»

на линии Gtk::Main kit(argc, argv) вполне вероятно, потому что Xcode по умолчанию создает такой главный int main(int argc, const char * argv[]), но gtkmm использует argv как параметр non const, поэтому вам нужно cha nge ваша основная функция - int main(int argc, char * argv[]).

Смежные вопросы