Cygwin, xwindow
-
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.
-
Wenn nicht, solltest Du evtl. -I/cygwin/usr/X11R6/include/X11 an gcc übergeben und
#include "xwindows.h"
zu#include <xwindows.h>
ändern.
-
Dharma schrieb:
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
g++ -L/usr/X11R6/include/ -lX11 xwindows_test.cpp
also entweder du lässt xwindows.h in C:/cygwin/usr/X11R6/include/X11, dann musst du natürlich noch -I/usr/X11R6/include/X11 mit in den compiler befehl mit reinpacken oder du verschiebst die xwindows.h in das verzeichnis in dem dein source code ist.
letzteres würde ich dir empfehlen. der header hat IMHO überhaupt nichts in C:/cygwin/usr/X11R6/include/X11 zu suchen da er nich zu X11 gehört (was ich nicht gewusst habe bevor ich mir den header mal angesehen hab)
dann musses laufen
mfg
Plassy
-
hallo!
wollte nur bescheid geben...
ich habs jetzt noch auf etliche arten versucht - es geht nie. bin jetzt im computersaal auf der uni und habs am richtigen linux versucht und es geht ohne probs.
werde mir also demnächst auf meinem notebook eine distri installieren.
danke für eure hilfe!
lg
Dharma
-
Also ich habe schon eine ganze Menge mit Cygwin gemacht, inklusive Webserver und X11-Applikationen.
Es ist schon mal vorgekommen, dass ein Installations-Setup aus den Netz (www.cygwin.com) nicht 100% korrekt war - dann fand z. B. das Kommando "less" eine Library/DLL nicht, weil sie unter einem etwas anderen Namen (anderer Versionsindex) gespeichert war. Das lies sich aber alles ziemlich schnell beheben.
Bevor Du eine X11-Applikation schreibst, solltest Du erst einmal ein "Hello World" schreiben und kompilieren, um zu testen, ob der gcc und was dazu gehört installiert ist:> cat >hello.c # include <stdio.h> int main() { printf("Hello World!\n"); return(0); } [i]Dann Ctrl-D drücken[/i] > gcc -o hello hello.c > ./hello Hello World! >
Außerdem solltest Du prüfen, ob der X-Server vollständig installiert ist und läuft, indem Du "startx" eingibst. Dann sollte in der Taskleiste rechts ein großes X erscheinen und ein xterm-Fenster erscheinen.
Als nächstes ist wichtig, welches X11-Toolkit Du verwenden willst (also z. B. GTK+). Die entsprechenden Develop-Pakete müssen dafür natürlich dann installiert sein.