Я возился с версией 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
Не уверен, как это сделать. Любая помощь будет принята с благодарностью.