Компилирование C / GTK в Eclipse - PullRequest
       9

Компилирование C / GTK в Eclipse

8 голосов
/ 22 августа 2009

Я возился с версией Eclipse для C / C ++, чтобы создать простое приложение GTK. Тем не менее, я не могу собрать пример GTK из Eclipse. Я могу скомпилировать простое тестовое приложение в стиле Hello World, так что я знаю, что сама цепочка инструментов работает. Однако в тот момент, когда я начинаю добавлять GTK в микширование, компилятор выдает ошибки. Самое смешное, что я могу прекрасно скомпилировать примеры вне среды Eclipse. Например, я использую примеры на этой странице и следуя приведенным там инструкциям, я могу создать работающий двоичный файл.

Я думаю, что первая проблема в том, что на основной файл включения GTK ссылаются по-разному, когда я пытаюсь скомпилировать в Eclipse. Версия без Eclipse, с которой я могу скомпилировать (как в примере):

#include <gtk/gtk.h>

Однако в Eclipse это не работает. Мне нужно изменить его на:

#include <gtk-2.0/gtk/gtk.h>

Затем можно найти включаемый файл, но затем процесс компиляции начинает выдавать ошибки о типе GtkWidget. E.g.:

#include <gtk-2.0/gtk/gtk.h>

int main( int argc, char *argv[] )
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_show  (window);

    gtk_main ();

    return 0;
}

Результаты в этих ошибках:

make all 
Building file: ../src/main.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o"src/main.o" "../src/main.c"
../src/main.c: In function ‘main’:
../src/main.c:7: error: ‘GtkWidget’ undeclared (first use in this function)
../src/main.c:7: error: (Each undeclared identifier is reported only once
../src/main.c:7: error: for each function it appears in.)
../src/main.c:7: error: ‘window’ undeclared (first use in this function)
../src/main.c:9: warning: implicit declaration of function ‘gtk_init’
../src/main.c:11: warning: implicit declaration of function ‘gtk_window_new’
../src/main.c:11: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)
../src/main.c:12: warning: implicit declaration of function ‘gtk_widget_show’
../src/main.c:14: warning: implicit declaration of function ‘gtk_main’
make: *** [src/main.o] Error 1

Не уверен, как это сделать. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

9 голосов
/ 22 августа 2009

Щелкните правой кнопкой мыши проект Eclipse и выберите свойства. В раскрывающемся списке «Конфигурация» выберите [ All configurations ]. Затем на вкладке «Настройки инструмента» выберите GCC C Compiler (по умолчанию) и добавьте в конец поля Command line pattern (Настройки эксперта) следующее:

`pkg-config --cflags --libs gtk+-2.0`

Сделайте то же самое для опции GCC C Linker.

Если вы не хотите начинать пути включения с помощью gtk-2.0, добавьте также каталог включения (/usr/include/gtk-2.0), как предложил aardvark.

3 голосов
/ 22 августа 2009

Попробуйте добавить каталог gtk в путь сборки:

Перейдите в Свойства проекта -> Сборка C / C ++ -> Настройки -> Настройки инструмента -> Каталоги и добавьте его в поле «Включить пути».

1 голос
/ 02 июня 2011

Долгожданное облегчение, учитывая, что скоро ожидается поддержка pcl-config для Eclipse CDT.

Поддержка находится в стадии разработки и будет интегрирована в CDT примерно в августе.

Наиболее важной особенностью является то, что простой в использовании пользовательский интерфейс позволяет выбирать необходимые пакеты.

Сайт проекта: http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

Обновление: Не стесняйтесь тестировать бета-версию:
http://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
Обратная связь приветствуется!

...