g++ am Mac und header-Pfade
-
Hallo,
ich habe beschlossen mich in Oberflächen mit GTKmm einzuarbeiten.
Ich arbeite an einem Mac unter Mac OS X Lion und nutze Sublime Text 2 als IDE, welche g++ (i686-apple-darwin11-llvm-g++-4.2) ausführt.
Ich möchte nun glibmm.h mit #include <glibmm.h> einbinden.
Mit Fink habe ich http://pdb.finkproject.org/pdb/package.php/gtkmm2.4-gtk-dev installiert, das "include"-Verzeichnis mit den entsprechenden header-Dateien lautet "/sw/include".
Führe ich nun g++ aus kommt folgende Fehlermeldung:
gtk.cpp:1:21: error: glibmm.h: No such file or directory
Jetzt muss ich g++ irgendwie beibringen in /sw/include nach glibmm.h zu suchen, denke ich. Aber hier komme ich nicht weiter.
Vielen Dank schon einmal.
mynamenixname
-
g++ -I/sw/include ...
-
Normalerweise verwendet man dafuer pkg-config, siehe auch hier:
http://developer.gnome.org/gtkmm/stable/
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hat leider nicht funktioniert.
g++ wird über Cpp.sublime-build (https://gist.github.com/1566100) aufgerufen.{ "cmd": ["g++ -Wall ${file} -o ${file_base_name} && ./${file_base_name}"], "working_dir": "${file_path}", "selector": "source.c++", "shell": true, "windows": { "cmd": ["cl", "/Fo${file_path}", "/O2", "$file"], "selector": "source.c++", "shell": true } }
"cmd": ["g++ -I/sw/include -Wall ${file} -o ${file_base_name} && ./${file_base_name}"], "working_dir": "${file_path}",
war erfolglos und
"cmd": ["g++ -Wall ${file} -o ${file_base_name} && ./${file_base_name}`pkg-config --cflags --libs gtkmm-2.4"], "working_dir": "${file_path}",
leider auch
-
In nmans link steht doch ziemlich genau, wie du den Compiler aufrufen musst. Warum versuchst du das nicht mal umzusetzen?
g++ program.cc -o program
pkg-config --cflags --libs gtkmm-3.0``Und "hat nicht funktioniert" ist unbrauchbar als Fehlerbeschreibung. Was erwartest du? Was ist stattdessen passiert? Du musst schon Fehlermeldungen oä posten.
-
rüdiger schrieb:
In nmans link steht doch ziemlich genau, wie du den Compiler aufrufen musst. Warum versuchst du das nicht mal umzusetzen?
g++ program.cc -o program
pkg-config --cflags --libs gtkmm-3.0``Und "hat nicht funktioniert" ist unbrauchbar als Fehlerbeschreibung. Was erwartest du? Was ist stattdessen passiert? Du musst schon Fehlermeldungen oä posten.
Okay, also ich habe mein Programm mal program.cc genannt und
me:desktop >g++ program.cc -o program `pkg-config --cflags --libs gtkmm-2.4` Package gtkmm-2.4 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtkmm-2.4.pc' to the PKG_CONFIG_PATH environment variable No package 'gtkmm-2.4' found program.cc:1:20: error: gtkmm.h: No such file or directory program.cc: In function ‘int main(int, char**)’: program.cc:5: error: ‘Gtk’ has not been declared program.cc:5: error: expected `;' before ‘main_obj’ program.cc:6: error: ‘Gtk’ has not been declared program.cc:6: error: expected `;' before ‘window_obj’ program.cc:7: error: ‘main_obj’ was not declared in this scope program.cc:7: error: ‘window_obj’ was not declared in this scope me:desktop >
me:desktop >g++ program.cc -o program `pkg-config --cflags --libs gtkmm-3.0` Package gtkmm-3.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtkmm-3.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtkmm-3.0' found program.cc:1:20: error: gtkmm.h: No such file or directory program.cc: In function ‘int main(int, char**)’: program.cc:5: error: ‘Gtk’ has not been declared program.cc:5: error: expected `;' before ‘main_obj’ program.cc:6: error: ‘Gtk’ has not been declared program.cc:6: error: expected `;' before ‘window_obj’ program.cc:7: error: ‘main_obj’ was not declared in this scope program.cc:7: error: ‘window_obj’ was not declared in this scope me:desktop >
Wo ist denn so eine "environment variable" gespeichert?
Ist in einer solchen der Pfad, in dem g++ nach den entsprechenden header-Dateien sucht gespeichert? - Kann man diesen Pfad auslesen? - Kann man einen 2. Pfad hinzufügen?
-
mynamenixname schrieb:
Wo ist denn so eine "environment variable" gespeichert?
Die wird in deiner .bashrc oae. gesetzt.
Ist in einer solchen der Pfad, in dem g++ nach den entsprechenden header-Dateien sucht gespeichert? - Kann man diesen Pfad auslesen? - Kann man einen 2. Pfad hinzufügen?
Du solltest pkg-config verwenden, weil dir das gueltige Pfade ausgibt, ohne dass du manuell herumbasteln musst.
Hast du pkg-config auch via fink installiert? Weisz gerade nicht auswendig, ob OS X nicht selbst ein pkg-config mitbringt, das dann vielleicht das fink-gtkmm nicht findet.
-
Danke.
sieht gut aus
pkg-config Must specify package names on the command line
ich setzte mich mal dran