Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Anjuta und Include Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128

    Anjuta und Include Problem

    hi

    ich will ein GTK+ 2.0 Programm entwickeln habe mir dazu Anjuta und glade compiliert.
    Wenn ich bei anjuta ein neues Projekt erstelle und dann auf kompilieren drücke funktioniert es ohne Probleme aber wenn ich einmal in Glade gehe und nur Source Code Genereien klicke und dann speichere und wieder in Anjuta gehe. Und dann wieder compliliere dann kommt der Fehler das er gtk/gtk.h nicht finden konnte. Wenn ich den inlude Path manuell angabe dann findet er zwar gtk.h aber dann kommen tausend andere include Fehler.
    Wie und welche Libarys muss ich denn einbinden und geht das nicht einfacher das Anjuta die vielleicht automatisch einbindet ?

    MFG
    xmarvel

  2. #2
    Registrierter Benutzer
    Registriert seit
    04.07.1999
    Ort
    Zürich
    Beiträge
    221
    versuch mal
    Code:
    g++ *.cc -o myprog `pkg-config gtkmm-2.0 --cflags --libs`
    wenns so funktioniert, schau dir die Ausgabe von pkg-config gtkmm-2.0 --cflags --libs an.

    greets
    f0rtex
    Doctrína est fructus dulcis radícis amárae.

  3. #3
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    also wenn ich den Befehl an main.cc ausführe dann kommt das
    Code:
    In file included from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/include/g++-v3/backward/iostream.h:31,
                     from main.cc:4:
    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/include/g++-v3/backward/backward_warning.h:32:2: warning: #warning
    This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.
    Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. 
    To disable this warning use -Wno-deprecated.
    das funktioniert auch, leider wird da auch nichts graphisches aufgerufen, da in der main.cc nur eine Hello World cout Ausgabe drin ist.

    Aber Glade erstellt automatisch eine main.c mit folgenden Inhalt:
    Code:
    /*
     * Initial main.c file generated by Glade. Edit as required.
     * Glade will not overwrite this file.
     */
    
    #ifdef HAVE_CONFIG_H
    #  include <config.h>
    #endif
    
    #include <gtk/gtk.h>
    
    #include "interface.h"
    #include "support.h"
    
    int
    main (int argc, char *argv[])
    {
      GtkWidget *window1;
    
    #ifdef ENABLE_NLS
      bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
      bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
      textdomain (GETTEXT_PACKAGE);
    #endif
    
      gtk_set_locale ();
      gtk_init (&argc, &argv);
    
      add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
    
      /*
       * The following code was added by Glade to create one of each component
       * (except popup menus), just so that you see something after building
       * the project. Delete any components that you don't want shown initially.
       */
      window1 = create_window1 ();
      gtk_widget_show (window1);
    
      gtk_main ();
      return 0;
    }
    und wenn ich dann den Befehl ausführe kommt diese Fehlermeldung.
    Code:
    main.c: In function `int main(int, char**)':
    main.c:29: `PACKAGE_DATA_DIR' undeclared (first use this function)
    main.c:29: (Each undeclared identifier is reported only once for each function
       it appears in.)
    main.c:29: syntax error before string constant
    Also irgendwas blödes mache ich bestimmt falsch. Kann ja nicht so schwer sein. Hab ja noch keinen eigenen code da eingefügt will es ja erstmal nur compiliert bekommen.
    Geändert von xmarvel (26-01-2004 um 21:33 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.07.1999
    Ort
    Zürich
    Beiträge
    221
    Versuch mal
    Code:
    add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
    durch
    Code:
    add_pixmap_directory(PACKAGE_PIXMAPS_DIR);
    zu ersetzen.
    Doctrína est fructus dulcis radícis amárae.

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    erstmal thx an alle
    jetzt habe ich das Problem lokalisiert.
    Ich habe bei Anjuta mit dem Wizard GTK + 2.0 Projekt ausgewählt mit der Porgrammiersprache C++ leider funktioniert es so nicht sondern nur mit C keine Ahnung warum.
    Dafür habe ich mal beim Projekt Wizard gtkmm 2.0 probiert mit C++ und siehe da es funktioniert einwandfrei.

    Kann mir vielleicht noch jemand sagen was der Unterschied zwischen gtkmm und gtk+ ist ? Werde natürlich mich nochmal schlau machen aber heute nicht mehr.

    MFG
    xmarvel

  6. #6
    Registrierter Benutzer
    Registriert seit
    04.07.1999
    Ort
    Zürich
    Beiträge
    221
    What is gtkmm (Previously known as Gtk--)?

    gtkmm is a C++ wrapper for GTK+. That is, it is a language binding that lets you use GTK+ from C++. This includes support for C++ features such as inheritance, polymorphism and other powerful techniques which C++ programmers expects to have at their disposal.
    Doctrína est fructus dulcis radícis amárae.

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.08.2002
    Ort
    Berlin
    Beiträge
    128
    war leider nur ein Teilerfolg
    Wenn ich ein Projekt mit der Programmiersprache C erstelle und bei Glade auch auf C stelle dann funktioniert alles einwandfrei.
    Leider wollte ich es mit C++ programmieren also überall C++ ausgewählt und dann kommt das Problem das glade die Dateien nicht überschreibt bzw. nicht anpasst wenn man z.B. ein neuen Button hinzufügt.
    Entweder macht ich es händisch dann kommen wieder viele fehler oder er nimmt halt den alten code.
    Wenn man C und C++ als Programmiersprache bei Anjuta nimmt dann kommen die selben Fehler wie bei C++.
    Hab schon eigentlich alles ausprobiert weiss aber nicht mehr so recht weiter.
    Anscheinend kann Anjuta mit glade C++ nicht richtig umgehen oder hat das jemand schonmal effektiv geschafft ?

  8. #8
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Die Frage ist natürlich, was genau das Umschalten der Programmiersprache von C nach C++ in Anjuta bzw. Glade bewirkt d.h. ob beide nach der Umschaltung gtk-- verwenden oder nicht.

    Die Sache mit dem nicht-überschreiben oder nicht anpassen finde ich merkwürdig. Allerdings weiss ich nicht wie Glade das händelt - das Problem ist ja, dass das Programm die Dateien wohl nicht überschreiben sollte, wenn du was daran geändert hast.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

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