Anzeige:
Ergebnis 1 bis 4 von 4

Thema: dev c++ und gtk kompilieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    69

    dev c++ und gtk kompilieren

    Hi,
    ich hab versucht ein gtk+ Programm unter devc++ zu kompilieren. Leider funktioniert das Linken nicht:

    Code:
    Compiler: Default compiler
    Building Makefile: "D:\myfiles\Programmieren\SortAlgorithm(SF2)\project_win32devcpp\Makefile.win"
    Executing  make...
    make.exe -f "D:\myfiles\Programmieren\SortAlgorithm(SF2)\project_win32devcpp\Makefile.win" all
    g++.exe ../src/CBenchmark.o ../src/console.o ../src/CSortAlgorithm.o ../src/CTree.o ../src/gtkeventh.o ../src/gtkgui.o ../src/main.o  -o "project_Win32DevCPP.exe" -L"C:/Programme/Dev-Cpp/lib" -L"C:/GTK/lib" -L"C:/Programme/Dev-Cpp/bin" -L"C:/GTK/bin"  
    
    ../src/gtkeventh.o(.text+0x18e):gtkeventh.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkeventh.o(.text+0x19f):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x1a7):gtkeventh.cpp: undefined reference to `gtk_entry_get_text'
    ../src/gtkeventh.o(.text+0x269):gtkeventh.cpp: undefined reference to `g_object_get'
    ../src/gtkeventh.o(.text+0x4f0):gtkeventh.cpp: undefined reference to `g_object_set'
    ../src/gtkeventh.o(.text+0x5a9):gtkeventh.cpp: undefined reference to `gdk_cairo_create'
    ../src/gtkeventh.o(.text+0x5c9):gtkeventh.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkeventh.o(.text+0x5da):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x5e2):gtkeventh.cpp: undefined reference to `gtk_entry_get_text'
    ../src/gtkeventh.o(.text+0x5ea):gtkeventh.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkeventh.o(.text+0x5fb):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x603):gtkeventh.cpp: undefined reference to `gtk_entry_get_text'
    ../src/gtkeventh.o(.text+0x60b):gtkeventh.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkeventh.o(.text+0x61c):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x624):gtkeventh.cpp: undefined reference to `gtk_entry_get_text'
    ../src/gtkeventh.o(.text+0x74f):gtkeventh.cpp: undefined reference to `gtk_window_get_type'
    ../src/gtkeventh.o(.text+0x760):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x790):gtkeventh.cpp: undefined reference to `gtk_message_dialog_new'
    ../src/gtkeventh.o(.text+0x7b8):gtkeventh.cpp: undefined reference to `gtk_widget_destroy'
    ../src/gtkeventh.o(.text+0x7ce):gtkeventh.cpp: undefined reference to `g_signal_connect_data'
    ../src/gtkeventh.o(.text+0x7dc):gtkeventh.cpp: undefined reference to `gtk_widget_show'
    ../src/gtkeventh.o(.text+0x83a):gtkeventh.cpp: undefined reference to `gtk_window_get_type'
    ../src/gtkeventh.o(.text+0x855):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x885):gtkeventh.cpp: undefined reference to `gtk_message_dialog_new'
    ../src/gtkeventh.o(.text+0x8ad):gtkeventh.cpp: undefined reference to `gtk_widget_destroy'
    ../src/gtkeventh.o(.text+0x8c3):gtkeventh.cpp: undefined reference to `g_signal_connect_data'
    ../src/gtkeventh.o(.text+0x8d1):gtkeventh.cpp: undefined reference to `gtk_widget_show'
    ../src/gtkeventh.o(.text+0x939):gtkeventh.cpp: undefined reference to `gtk_window_get_type'
    ../src/gtkeventh.o(.text+0x954):gtkeventh.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkeventh.o(.text+0x984):gtkeventh.cpp: undefined reference to `gtk_message_dialog_new'
    ../src/gtkeventh.o(.text+0x9ac):gtkeventh.cpp: undefined reference to `gtk_widget_destroy'
    ../src/gtkeventh.o(.text+0x9c2):gtkeventh.cpp: undefined reference to `g_signal_connect_data'
    ../src/gtkeventh.o(.text+0x9d0):gtkeventh.cpp: undefined reference to `gtk_widget_show'
    ../src/gtkeventh.o(.text+0xa34):gtkeventh.cpp: undefined reference to `gtk_option_menu_get_history'
    
    ../src/gtkeventh.o(.text+0xd8c):gtkeventh.cpp: undefined reference to `cairo_set_source_rgb'
    ../src/gtkeventh.o(.text+0xf4b):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0xf95):gtkeventh.cpp: undefined reference to `cairo_line_to'
    ../src/gtkeventh.o(.text+0x1075):gtkeventh.cpp: undefined reference to `cairo_stroke'
    ../src/gtkeventh.o(.text+0x1257):gtkeventh.cpp: undefined reference to `cairo_save'
    ../src/gtkeventh.o(.text+0x1288):gtkeventh.cpp: undefined reference to `cairo_set_source_rgba'
    ../src/gtkeventh.o(.text+0x129d):gtkeventh.cpp: undefined reference to `cairo_set_operator'
    ../src/gtkeventh.o(.text+0x12aa):gtkeventh.cpp: undefined reference to `cairo_paint'
    ../src/gtkeventh.o(.text+0x12b7):gtkeventh.cpp: undefined reference to `cairo_restore'
    ../src/gtkeventh.o(.text+0x1467):gtkeventh.cpp: undefined reference to `g_object_set'
    ../src/gtkeventh.o(.text+0x1709):gtkeventh.cpp: undefined reference to `g_object_set'
    ../src/gtkeventh.o(.text+0x1815):gtkeventh.cpp: undefined reference to `cairo_set_source_rgb'
    
    ../src/gtkeventh.o(.text+0x1828):gtkeventh.cpp: undefined reference to `cairo_set_line_width'
    ../src/gtkeventh.o(.text+0x185b):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x188e):gtkeventh.cpp: undefined reference to `cairo_line_to'
    ../src/gtkeventh.o(.text+0x18c1):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x18f4):gtkeventh.cpp: undefined reference to `cairo_line_to'
    ../src/gtkeventh.o(.text+0x1901):gtkeventh.cpp: undefined reference to `cairo_stroke'
    ../src/gtkeventh.o(.text+0x1918):gtkeventh.cpp: undefined reference to `cairo_set_line_width'
    ../src/gtkeventh.o(.text+0x1965):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x199b):gtkeventh.cpp: undefined reference to `cairo_line_to'
    ../src/gtkeventh.o(.text+0x19f9):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x1a2f):gtkeventh.cpp: undefined reference to `cairo_line_to'
    ../src/gtkeventh.o(.text+0x1a4d):gtkeventh.cpp: undefined reference to `cairo_stroke'
    ../src/gtkeventh.o(.text+0x1a72):gtkeventh.cpp: undefined reference to `cairo_select_font_face'
    ../src/gtkeventh.o(.text+0x1a89):gtkeventh.cpp: undefined reference to `cairo_set_font_size'
    ../src/gtkeventh.o(.text+0x1ac2):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x1ad7):gtkeventh.cpp: undefined reference to `cairo_show_text'
    ../src/gtkeventh.o(.text+0x1b10):gtkeventh.cpp: undefined reference to `cairo_move_to'
    ../src/gtkeventh.o(.text+0x1b25):gtkeventh.cpp: undefined reference to `cairo_show_text'
    ../src/gtkgui.o(.text+0x48):gtkgui.cpp: undefined reference to `g_snprintf'
    ../src/gtkgui.o(.text+0x69):gtkgui.cpp: undefined reference to `g_snprintf'
    ../src/gtkgui.o(.text+0x8a):gtkgui.cpp: undefined reference to `g_snprintf'
    ../src/gtkgui.o(.text+0xab):gtkgui.cpp: undefined reference to `g_snprintf'
    ../src/gtkgui.o(.text+0xc9):gtkgui.cpp: undefined reference to `g_snprintf'
    
    ../src/gtkgui.o(.text+0xe7):gtkgui.cpp: more undefined references to `g_snprintf' follow
    ../src/gtkgui.o(.text+0x12b):gtkgui.cpp: undefined reference to `gtk_check_button_get_type'
    ../src/gtkgui.o(.text+0x14b):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x161):gtkgui.cpp: undefined reference to `gtk_table_get_type'
    ../src/gtkgui.o(.text+0x191):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x1ab):gtkgui.cpp: undefined reference to `gtk_label_get_type'
    ../src/gtkgui.o(.text+0x1ce):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x1f2):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x208):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x20f):gtkgui.cpp: undefined reference to `gtk_table_get_type'
    ../src/gtkgui.o(.text+0x220):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x24d):gtkgui.cpp: undefined reference to `gtk_table_attach_defaults'
    ../src/gtkgui.o(.text+0x252):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    
    ../src/gtkgui.o(.text+0x268):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x26f):gtkgui.cpp: undefined reference to `gtk_table_get_type'
    ../src/gtkgui.o(.text+0x280):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x2ad):gtkgui.cpp: undefined reference to `gtk_table_attach_defaults'
    ../src/gtkgui.o(.text+0x2bc):gtkgui.cpp: undefined reference to `gtk_vbox_get_type'
    ../src/gtkgui.o(.text+0x2cc):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x2d6):gtkgui.cpp: undefined reference to `gtk_hbox_get_type'
    ../src/gtkgui.o(.text+0x2e6):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x2f7):gtkgui.cpp: undefined reference to `gtk_button_new_with_label'
    ../src/gtkgui.o(.text+0x308):gtkgui.cpp: undefined reference to `gtk_button_new_with_label'
    ../src/gtkgui.o(.text+0x312):gtkgui.cpp: undefined reference to `gtk_hbutton_box_get_type'
    ../src/gtkgui.o(.text+0x342):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x34c):gtkgui.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkgui.o(.text+0x37c):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x386):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x397):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x39e):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    ../src/gtkgui.o(.text+0x3af):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x3bb):gtkgui.cpp: undefined reference to `gtk_box_pack_start_defaults'
    ../src/gtkgui.o(.text+0x3c0):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x3d1):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    
    ../src/gtkgui.o(.text+0x3d8):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    ../src/gtkgui.o(.text+0x3e9):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x3f5):gtkgui.cpp: undefined reference to `gtk_box_pack_start_defaults'
    ../src/gtkgui.o(.text+0x3fa):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x40b):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x412):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    ../src/gtkgui.o(.text+0x423):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x42f):gtkgui.cpp: undefined reference to `gtk_box_pack_start_defaults'
    ../src/gtkgui.o(.text+0x434):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x445):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x44c):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    
    ../src/gtkgui.o(.text+0x45d):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x469):gtkgui.cpp: undefined reference to `gtk_box_pack_start_defaults'
    ../src/gtkgui.o(.text+0x46e):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x47f):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x486):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    ../src/gtkgui.o(.text+0x497):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x4bb):gtkgui.cpp: undefined reference to `gtk_box_pack_start'
    ../src/gtkgui.o(.text+0x4c0):gtkgui.cpp: undefined reference to `gtk_widget_get_type'
    ../src/gtkgui.o(.text+0x4d1):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x4d8):gtkgui.cpp: undefined reference to `gtk_box_get_type'
    ../src/gtkgui.o(.text+0x4e9):gtkgui.cpp: undefined reference to `g_type_check_instance_cast'
    ../src/gtkgui.o(.text+0x50d):gtkgui.cpp: undefined reference to `gtk_box_pack_start'
    ../src/gtkgui.o(.text+0x542):gtkgui.cpp: undefined reference to `g_signal_connect_data'
    
    ../src/gtkgui.o(.text+0x577):gtkgui.cpp: undefined reference to `g_signal_connect_data'
    ../src/gtkgui.o(.text+0x58a):gtkgui.cpp: undefined reference to `gtk_vbox_get_type'
    ../src/gtkgui.o(.text+0x59a):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x5a4):gtkgui.cpp: undefined reference to `gtk_hbox_get_type'
    ../src/gtkgui.o(.text+0x5b4):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x5be):gtkgui.cpp: undefined reference to `gtk_button_get_type'
    ../src/gtkgui.o(.text+0x5de):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x5e8):gtkgui.cpp: undefined reference to `gtk_button_get_type'
    ../src/gtkgui.o(.text+0x608):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x612):gtkgui.cpp: undefined reference to `gtk_hbutton_box_get_type'
    ../src/gtkgui.o(.text+0x622):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x62c):gtkgui.cpp: undefined reference to `gtk_entry_get_type'
    ../src/gtkgui.o(.text+0x65c):gtkgui.cpp: undefined reference to `g_object_new'
    ../src/gtkgui.o(.text+0x666):gtkgui.cpp: undefined reference to `gtk_entry_get_type'
    ...
    make.exe: *** [project_Win32DevCPP.exe] Error 1
    
    Execution terminated
    ich hab das verzeichnis in dem die Gtk+ dll drin sind als Path angegeben, irgendwie findet er die Symbole trotzdem nicht?

    weis jemand einen Rat?

    gruss martin

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von barton4 Beitrag anzeigen
    Code:
    g++.exe ... -L"C:/Programme/Dev-Cpp/lib" -L"C:/GTK/lib" -L"C:/Programme/Dev-Cpp/bin" -L"C:/GTK/bin"
    ich hab das verzeichnis in dem die Gtk+ dll drin sind als Path angegeben, irgendwie findet er die Symbole trotzdem nicht?
    Du sagst ihm zwar, in welchem Verzeichnis er suchen soll, aber du musst auch angeben, was gesucht werden soll.
    Da fehlen also noch ein -lgtk (kleines l) oder so.

    Gibt es auf dem System das Programm pkg-config? Wenn ja, guck dir mal die Ausgabe von "pkg-config --libs gtk+-2.0" an.

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    69
    hab die fehlenden linker optionen noch hinzugefügt, wie du gesagt hattest, leider findet er immer noch nicht die die Bibliotheken

    hier mal das makefile
    Code:
    CC=g++ 
    BUILDIR="build/"
    LDFLAGS= -L/cygdrive/c/GTK/bin/ -L/cygdrive/c/GTK/lib/  -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lz -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -lpng12  
    CCFLAGS= -DCYGWIN -mno-cygwin -mms-bitfields -I/cygdrive/c/GTK/include/ -I/cygdrive/c/GTK/include/gtk-2.0 -I/cygdrive/c/GTK/include/atk-1.0/atk -I/cygdrive/c/GTK/include/atk-1.0/ -I/cygdrive/c/GTK/include/ -I/cygdrive/c/GTK/include/glib-2.0 -I/cygdrive/c/GTK/include/cairo/ -I/cygdrive/c/GTK/include/pango-1.0/ -I/cygdrive/c/GTK/lib/glib-2.0/include/ -I/cygdrive/c/GTK/lib/gtk-2.0/include -I/cygdrive/c/GTK/include/glib-2.0/glib/  
    
    main: $(BUILDIR)CBenchmark.o $(BUILDIR)CSortAlgorithm.o $(BUILDIR)CTree.o $(BUILDIR)console.o $(BUILDIR)gtkgui.o $(BUILDIR)gtkeventh.o  $(BUILDIR)main.o 
    	$(CC) $(CCFLAGS) $(LDFLAGS) -o $(BUILDIR)mainprog $(BUILDIR)main.o $(BUILDIR)CBenchmark.o $(BUILDIR)CSortAlgorithm.o $(BUILDIR)CTree.o $(BUILDIR)console.o $(BUILDIR)gtkgui.o $(BUILDIR)gtkeventh.o
    
    $(BUILDIR)main.o: ./src/main.cpp
    	$(CC) $(CCFLAGS) -c ./src/main.cpp -o $(BUILDIR)main.o
    
    $(BUILDIR)CSortAlgorithm.o: ./src/CSortAlgorithm.h ./src/CSortAlgorithm.cpp
    	$(CC) $(CCFLAGS) -c ./src/CSortAlgorithm.cpp -o $(BUILDIR)CSortAlgorithm.o
    
    $(BUILDIR)CBenchmark.o: ./src/CBenchmark.h ./src/CBenchmark.cpp
    	$(CC) $(CCFLAGS) -c -o $(BUILDIR)CBenchmark.o ./src/CBenchmark.cpp
    
    $(BUILDIR)CTree.o: ./src/CTree.h ./src/CTree.cpp
    	$(CC) $(CCFLAGS) -c ./src/CTree.cpp -o $(BUILDIR)CTree.o
    	
    $(BUILDIR)console.o: ./src/console.h ./src/console.cpp
    	$(CC) $(CCFLAGS) -c ./src/console.cpp -o $(BUILDIR)console.o
    
    $(BUILDIR)gtkgui.o: ./src/gtkgui.h ./src/gtkgui.cpp
    	$(CC) $(CCFLAGS) -c ./src/gtkgui.cpp -o $(BUILDIR)gtkgui.o
    
    $(BUILDIR)gtkeventh.o: ./src/gtkeventh.h ./src/gtkeventh.cpp
    	$(CC) $(CCFLAGS) -c ./src/gtkeventh.cpp -o $(BUILDIR)gtkeventh.o
    ich wusste auch nicht genau welches verzeichnis ich bei den Linker Optionen nehmen sollte, dashalb hab ich beide genommen:

    -L/cygdrive/c/GTK/bin/ -L/cygdrive/c/GTK/lib/

    in dem bin Verzeichnis sind die .dll dateien in

    /lib sind .lib dateien und .a Dateien

    Nun weis ich nicht genau welche er zum Linken braucht, aber wenn man beides angibt kann ja nicht schief gehen oder?

  4. #4
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    69
    so es geht nun mit den parametern unter devc++. danke

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •