Archiv verlassen und diese Seite im Standarddesign anzeigen : 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
versuch mal
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
also wenn ich den Befehl an main.cc ausführe dann kommt das
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:
/*
* 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.
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.
Versuch mal
add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
durch
add_pixmap_directory(PACKAGE_PIXMAPS_DIR);
zu ersetzen.
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
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.
war leider nur ein Teilerfolg :rolleyes:
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 ?
peschmae
28-01-2004, 18:59
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ä
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.