Cygwin, xwindow
-
hallo
ich habe heute auf meinem windows-notebook cygwin installiert, weil ich xwindow für meine programmieraufgabe in c++ brauche.
ich bin ganz unerfahren mit linux-befehlen...naja
bin mir nicht ganz sicher, ob es schon richtig funktioniert - also das cygwin.
wenn ich den befehl "ls" eintippe, kommt gar nix.....wahrscheinlich, weil in der directory noch nix gespeichert ist?!wohin muss ich denn meine c++ dateien speichern, damit ich sie kompilieren kann?
im moment sagt er nur "no such file or directory!"
-
ok...ich hab gerade mein homedirectory gefunden *gg*
der thread hat sich zwar für den moment erledigt, aber ich weiß ja noch nicht, ob das mit xwindow funktioniert....
also ich würde den fred ja löschen, wenn ich könnte...lg
Dharma
-
so - das problem ist also nun wie erwartet da:
ich möchte ein testprogramm zum laufen bringen (c++) für das ich eine headerdatie runtergeladen hab, welche der compiler nun nicht findet.
wohin muss ich sie speichern, damit er sie findet?
sie liegt jetzt in:
/usr/X11R6/lib64 und heißt xwindows.h
um das programm zu kompilieren, gebe ich diesen path und -lX11 xwindows_test.cpp
ein. er schreibt dann immer "no such file or directory"ich hoffe wirklich auf hilfe. habe schon den ganzen tag gebraucht um cygwin zu installieren
-
header gehören nicht ins "lib" verzeichnis
versuchs mal mit /usr/include oder /usr/X11R6/includeoder du sagst gcc dass er woanders nach dem header suchen soll
gcc -I/some/directory ...ich glaube für dich wäre es wohl einfacher wenn du dir irgend ein linux installieren würdest anstatt mit cygwin rumzufrickeln
mfg
Plassy
-
du hast ja keine ahnung wielang ich mir das schon vornehm
ich habe xwindow schon verschoben.... aber er findets trotzdem nicht. werds mal weiter versuchen.
eigentlich dachte ich, dass das schreiben des eigentlichen programmes das prob sein wird....und nicht die software dazu....oh mann....
aber danke erstmal!
-
nochwas:
was bedeutet eigentlich das "-lX11" nach dem pfad?
das ganze kommando sieht so aus:
g++ -L/usr/X11R6/lib64 -lX11 xwindows_test.cpp
mal abgesehen davon, dass er eben an dieser adresse nix findet.
obwohl - wenns doch dort ist, dann müsste ers ja auch finden, oder? egal, ob es dort hingehört oder nicht?!
-
Dharma schrieb:
was bedeutet eigentlich das "-lX11" nach dem pfad?
Dass Du eine Library namens "libX11" linken möchtest.
-
das -IX11 bedeutet, dass gcc im verzeichnis X11 nach headern sucht
wenn du xwindows.h in X11 hast, dann findet gcc den header auch.
wenn dein header nicht da ist (oder das verzeichnis nicht existiert) musst du den ordner angeben wo dein header drin ist.
Bei dir dann warscheinlich -I/usr/X11R6/include oder somfg
Plassy
-
Plassy schrieb:
das -IX11 bedeutet, dass gcc im verzeichnis X11 nach headern sucht
wenn du xwindows.h in X11 hast, dann findet gcc den header auch.
wenn dein header nicht da ist (oder das verzeichnis nicht existiert) musst du den ordner angeben wo dein header drin ist.
Bei dir dann warscheinlich -I/usr/X11R6/include oder soalles falsch, sorry... dachte das wäre ein I ist aber ein L
-
Plassy schrieb:
das -IX11 bedeutet, dass gcc im verzeichnis X11 nach headern sucht
Da ist kein -I (großes i) sondern ein -l (kleines L).
-
Dharma schrieb:
nochwas:
was bedeutet eigentlich das "-lX11" nach dem pfad?
das ganze kommando sieht so aus:
g++ -L/usr/X11R6/lib64 -lX11 xwindows_test.cpp
achja.. da fehlt aber trotzdem noch der -I command...
woher soll gcc denn wissen wo er nach den header suchen soll?mfg
Plassy
-
Plassy schrieb:
achja.. da fehlt aber trotzdem noch der -I command...
woher soll gcc denn wissen wo er nach den header suchen soll?und wie schaut der -I command dann aus?
ich hab die datei sicher im richtigen verzeichnis liegen. sie war im übrigen schon vorher da - hätte sie also nicht extra runterladen müssentrotzdem.....
er scheint sie aber jetzt zu finde. nur es schaut so aus, als würde er sie nicht lesen...versteht ihr, wie ich das meine?
kann ich unter cygwin auch irgendwie die fehlermeldungen aus der konsole kopieren? dann könnte ich euch zeigen, was er schreibt.
-
aso - meinst du nach dem g++ und vor dem pfad? da steht in meinen unterlagen, dass das ein -L sein soll...
-
ich habe zwei programme...
beide sind quasi gleich aufgebaut. das eine liefert mir ein "no such file or directory" und das andere zb "XWindow undeclared"...ich kompiliere aber beide gleich!
das ist das eine "no such file...":
//neuertest.cpp using namespace std; #include <iostream> #include <cmath> #include "xwindows.h" int main (void) { int xmax = 500, ymax = 400; cout << endl << endl << "Programm xwindows_test.cpp" << endl << endl; XWindow meinfenster; meinfenster.Open (xmax,ymax, "Mein erstes Demofenster"); for (int x = 0; x < xmax; x++) { for (int y = 0; y < ymax; y++) { meinfenster.SetColor(x/300.0+2*sin(y/100.0)); meinfenster.DrawPoint(x,y); } } }
und das ist das andere:
#include <iostream> using namespace std; #include <cmath> #include "windows.h" int main (void) { XWindow W; W.Open (800,600,"Demo"); for (int x=0; x < 800; x++); for (int y=0; y < 600; y++) { W.SetColor(x/300.0+sin(y/100.0)); W.DrawPoint(x,y); } W.WaitForKeyPress(); }
das ist wirklich schon zum verzweifeln
-
Dharma schrieb:
aso - meinst du nach dem g++ und vor dem pfad? da steht in meinen unterlagen, dass das ein -L sein soll...
Boaa... du stehst aber ganz schön auf dem schlauch oder
Wie die files bei dir benannt sind und wo sie sind weiß ich doch nicht.allgemein:
g++ -L/pfad/zu/lib/verzeichnis -I/pfad/zu/header/verzeichnis -lX11 source_code.cpp
und mal ein beispiel wies bei mir aussieht:
g++ -L/usr/X11R6/lib -I/usr/include/X11/ -lX11 source_code.cpp
#include <X.h> //einen header namens xwindows.h gibts bei mir nicht int main() { ... }
hilft vielleicht:
http://x.cygwin.com/devel/documentation/mfg
Plassy
-
Boaa... du stehst aber ganz schön auf dem schlauch oder
Wie die files bei dir benannt sind und wo sie sind weiß ich doch nicht.ähm....ja - ganz genau
hab ich aber gar nicht gemeint....ich meinte, dass in meinen unterlagen der befehl zum compilieren anders aussieht (ich mein natürlich nicht den pfad). ich werds aber mal so probieren wie du jetzt geschrieben hast - das finde ich nämlich meinem befehl nicht mehr ganz so ähnlich.
und danke für den link - hab nirgends was brauchbares gefunden.
lg
-
du-u....plassy....
ich weiß, jetzt wirds schön langsam blöd.
anscheinend hat er xwindows.h jetzt gefunden. er schreibt jedenfalls nicht mehr hin, dass er das nicht kennt.
aber er schreibt auch dass er zb die funktion XWindow nicht kennt, die aber in der headerdatei deklariert ist.
zum kompilieren hab ich jetzt geschrieben:
g++ -L/usr/X11R6/lib -I/usr/include/X11 -lX11 testa.cpp
schaut nicht so aus, als ob ich das jemals hinbekomme.
wenn du vl zeit hast und ich dir nicht schon zu sehr auf die nerven gehe, könntest du das ganze nicht mal bei dir versuchen?
die headerdatei gäbe es da zum downloaden:
http://theorie.physik.uni-wuerzburg.de/~hinrichsen/Vorlesungen/Vorkurs/Quelltexte/xwindows.h
dann könntest du sie mal anschauen - vl kommst du dann drauf, was der fehler ist.
ich hoffe, die frage ist nicht zu unverschämt :p
-
Dharma schrieb:
du-u....plassy....
wenn du vl zeit hast und ich dir nicht schon zu sehr auf die nerven gehe, könntest du das ganze nicht mal bei dir versuchen?Ausnahmsweise
hab grad eh nichts zu tun...
Naja... whatever... jetzt versteh ichs erst der xwindows.h header gehört überhaupt nicht zu XOrg. Das is nur ein wrapper um die XOrg FunktionenDharma schrieb:
er schreibt auch dass er zb die funktion XWindow nicht kennt
Das ist ne Klasse und keine Funktion.
Auf jeden Fall funktionierts bei mir einwandfrei (ich bin hier an ner richtigen Linuxkiste also kein cygwin) nach ein paar änderungen... Deine beispiele hatten eins zwei kleine Fehler.#include <iostream> using namespace std; #include <cmath> #include "xwindows.h" int main () { XWindow W; W.Open (800,600,"Demo"); for (int x=0; x < 800; x++) { for (int y=0; y < 600; y++) { W.SetColor(x/300.0+sin(y/100.0)); W.DrawPoint(x,y); } } W.WaitForKeypress(); }
#include <iostream> using namespace std; #include <cmath> #include "xwindows.h" int main () { int xmax = 500, ymax = 400; cout << endl << endl << "Programm xwindows_test.cpp" << endl << endl; XWindow meinfenster; meinfenster.Open (xmax,ymax, "Mein erstes Demofenster"); for (int x = 0; x < xmax; x++) { for (int y = 0; y < ymax; y++) { meinfenster.SetColor(x/300.0+2*sin(y/100.0)); meinfenster.DrawPoint(x,y); } } meinfenster.WaitForKeypress(); }
hab ich compiliert mit:
g++ -L/usr/X11R6/lib -lX11 source.cpp
war also von anfang an richtig
wenns bei dir immer noch nicht funkt musst du halt mal genau schreiben was der compiler ausspuckt.mfg
Plassy
-
hallo
danke, dass du dir die mühe gemacht hast!
ich schreibe dir gleich, was der compiler genau sagt.
erstmal - hier genau liegt der header: C:/cygwin/usr/X11R6/include/X11
das programm, das ich kompilieren will liegt da: C:/cygwin/home/NB
beim kompilieren hab ich grad das eingetippt:
g++ -L/usr/X11R6/include/ -lX11 xwindows_test.cppund das meldet der compiler:
xwindows.h: no such filde or directory
In function in main():
`XWindow' undeclared (first use this function)
(each undeclared identifier is reported only once for each function it appears in.)
expected ';' before "meinfenster"
'meinfenster' undeclared (first use this function)so - das wars für das eine programm. beim anderen sagt er noch andere dinge zusätzlich:
name lookup of 'x' changed for new ISO scoping
using obsolete binding at 'x'so - das war jetzt alles...
morgen werd ichs mal auf der uni auf einem linux-rechner versuchen...
schön langsam wirds knapp mit meinem apfelmännchen.
lg und noch einen schönen sonntag abend.
-
Ist xwindows.h denn im aktuellen Pfad? Offensichtlich kann diese Datei ja nicht #includet werden.