Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Nur im CIP?
Ich hab da mal eine Frage:
Ich habe nun heute den ganzen Tag (seit heute morgen um 10 Uhr bis jetzt) versucht, die Programmieraufgabe am eigenen PC zu lösen. Habe bisher auch stolze 0 Zeilen Code zu den Aufgaben geschrieben, weil ich nur damit beschäftigt bin, SDL zu “installieren”. Eines vorweg: Ich habe es jetzt aufgegeben. Ich habe selbst einen Mac, und programmiere mit XCode, und das hat bis jetzt gut geklappt. Aber SDL bekomme ich nicht zum laufen. Ich kriege nur Fehlermeldungen, egal wie ich es anstelle. Kann ich denn die Aufgabe echt nur im CIP lösen?
Sieht wohl so aus.
Es gibt mehrere Veranstaltungen, wo es sehr schwer ist das Setup zum Laufen zu bringen und es dann sinnvoller ist es direkt im CIP zu machen um sich den Aufwand zu sparen. Es kann natürlich gut sein, dass es auf dem Mac etwas schwer ist, sollte aber grundsätzlich möglich sein. Hast du mal daran gedacht es in einer virtuellen Maschine zu versuchen? Ich weiß nicht, wie gut da der Graphikkartenzugriff ist und wie das auf Mac so läuft, könnte aber auch noch eine Alternative sein.
[m]sudo port install mesa glm libsdl[/m]
[code=patch]diff -r -u …/skel/Makefile ./Makefile
— …/skel/Makefile 2013-06-05 17:33:58.000000000 +0200
+++ ./Makefile 2013-06-12 21:36:47.000000000 +0200
@@ -1,8 +1,8 @@
.PHONY: all clean
LD = g++
-CXXFLAGS = -Wall -Wno-write-strings -g -DLINUX -I.
-LDFLAGS= -lSDL -lGL
+CXXFLAGS = -Wall -Wno-write-strings -g -DLINUX -I. $(shell pkg-config --cflags sdl mesa)
+LDFLAGS= $(shell pkg-config --libs sdl mesa)
BINARIES = A1a A1b A2
[/code]
Den Patch könnte man eigentlich auch in die Vorgabe einbauen. Oh, und [m]make LD=clang++[/m] ist noch hilfreich. Vorm Abgeben natürlich nochmal im CIP testen.
Seh ich genauso.
Du kannst dich mit dem cip per ssh (mit X11 forwarding natuerlich) verbinden. Hat bei mir bis jetzt immer wunderbar funktioniert. So kannst du auch gleichzeitig sicherstellen, dass deine Abgabe im cip kompiliert. Dann musst du kurz vor der Abgabe dein code nicht fixen, nur weils dann im cip nicht funktioniert/kompiliert. Mac ist auch zwar auch unix, trotzdem funktionieren da die Sachen so aweng anders wie auf linux.
Es ist komplett unproblematisch die Aufgabe z.B. auf einem Ubuntu zu bearbeiten.
SDL-dev und OpenGL-dev Packages installieren, GLM[1] passend in den include-Pfad legen (#include<glm/glm.hpp> muss sinnvoll aufgelöst werden können, im Makefile müsste sogar ein -I. stehen - also einfach glm/ direkt dazukopieren sollte reichen).
Nichtsdestotrotz alles nochmal im CIP testen.
Korrekt.
sudo apt-get install libsdl1.2-dev
sudo apt-get install libglm-dev libglm-doc
Mehr ist wirklich nicht nötig, das Makefile passt schon …
also ich denke es liegt an meinem system.
hab es nochmal probiert, und kriege nur fehlermeldungen. naja ich mach es jetzt im CIP und gut ist
Oftmals sagt einem die Fehermeldung auch, was nicht passt …
Wenns C++ ist aber immer oben anfangen zu lesen, die ganzen Folgefehler die immer auftreten sind meistens weniger relevant.
Jein. Das [m]Makefile[/m] passt für genau diesen Fall, in dem mein Patch allerdings auch nicht schädlich sein sollte[*], weil die entsprechenden [m]pkg-config[/m]-Aufrufe dann keine oder keine relevanten Flags hinzufügen würden. Für alle anderen Systeme und Konfigurationen, in denen das Makefile nicht passt würde der Patch aber helfen. [m]pkg-config[/m] ist halt als Tool entwickelt worden, mit dem man portabel gegen Libraries bauen und linken kann - man müsste es nur verwenden.
[*] Eine [m]mesa.pc[/m] scheints im CIP nicht zu geben, weswegen der exakte Patch von oben fehlschlagen wird. Ein [m]/pkg-config s/mesa/gl/g[/m] sollte das fixen.