Hallo...
Ich versuche gerade mich etwas in Lazarus einzuarbeiten. Nun stehe ich vor dem Problem, dass sich die dglOpenGL.pas ja praktisch garnicht in Lazarus 0.9.26 Beta kompilieren lässt. Erst hat er die Geometry.pas nicht gefunden, die habe ich dann aus dem DGLSDK übernommen, wie auch sämtliche andere Dateien. Dann stand ich vor dem Problem, dass sich die Geometry.pas nicht kompilieren lies, weil Lazarus die wohl nur versteht, wenn man {$ASMMODE intel} am Anfang, sowie assembler; bei jeder Assemblerfunktion einfügt. Soweit hat er die jetzt auch geschaft. Dafür habe ich jetzt sehr viele andere Fehlermeldungen bekommen, die anscheinend nicht mehr so einfach zu lösen sind.
Zitat:
C:\Programme\Lazarus\units\error.int(13,9) Hint: Type "TError" redefinition C:\Programme\Lazarus\units\dcal3d.pas(306,26) Hint: Local variable "head" does not seem to be initialized C:\Programme\Lazarus\units\coreanimation.imp(177,33) Hint: Local variable "trackCount" does not seem to be initialized C:\Programme\Lazarus\units\corebone.imp(163,24) Hint: Local variable "i" does not seem to be initialized C:\Programme\Lazarus\units\corematerial.imp(203,31) Hint: Local variable "mapCount" does not seem to be initialized C:\Programme\Lazarus\units\corematerial.imp(210,26) Hint: Local variable "l" does not seem to be initialized C:\Programme\Lazarus\units\coremesh.imp(130,35) Hint: Local variable "submeshCount" does not seem to be initialized C:\Programme\Lazarus\units\coremodel.int(63,31) Hint: Parameter "strFilename" not used C:\Programme\Lazarus\units\coremodel.int(63,53) Hint: Parameter "id" not used C:\Programme\Lazarus\units\coremodel.int(64,30) Hint: Parameter "strFilename" not used C:\Programme\Lazarus\units\coremodel.int(64,52) Hint: Parameter "id" not used C:\Programme\Lazarus\units\coremodel.int(65,26) Hint: Parameter "strFilename" not used C:\Programme\Lazarus\units\coremodel.int(65,48) Hint: Parameter "id" not used C:\Programme\Lazarus\units\coremodel.int(66,30) Hint: Parameter "strFilename" not used C:\Programme\Lazarus\units\coreskeleton.imp(250,32) Hint: Local variable "boneCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(78,26) Note: Local variable "NUMSPRINGS" is assigned but never used C:\Programme\Lazarus\units\coresubmesh.imp(145,14) Error: Duplicate identifier "SpringCount" C:\Programme\Lazarus\units\coresubmesh.imp(145,14) Hint: Identifier already defined in coresubmesh.int at line 89 C:\Programme\Lazarus\units\coresubmesh.imp(156,34) Hint: Local variable "vertexCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(160,32) Hint: Local variable "faceCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(167,34) Hint: Local variable "springCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(177,45) Hint: Local variable "textureCoordinateCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(214,41) Hint: Local variable "influenceCount" does not seem to be initialized C:\Programme\Lazarus\units\coresubmesh.imp(225,29) Hint: Local variable "PP" does not seem to be initialized C:\Programme\Lazarus\units\coretrack.imp(162,36) Hint: Local variable "keyframeCount" does not seem to be initialized C:\Programme\Lazarus\units\mixer.imp(279,45) Error: Incompatible types: got "Pointer" expected "CalAnimationAction" C:\Programme\Lazarus\units\mixer.imp(299,43) Error: Incompatible types: got "Pointer" expected "CalAnimationCycle" C:\Programme\Lazarus\units\mixer.imp(342,3) Error: Duplicate identifier "AnimationTime" C:\Programme\Lazarus\units\mixer.imp(342,3) Hint: Identifier already defined in mixer.int at line 46 C:\Programme\Lazarus\units\mixer.imp(371,45) Error: Incompatible types: got "Pointer" expected "CalAnimationAction" C:\Programme\Lazarus\units\mixer.imp(401,43) Error: Incompatible types: got "Pointer" expected "CalAnimationCycle" C:\Programme\Lazarus\units\vector.imp(171,3) Error: Duplicate identifier "length" C:\Programme\Lazarus\units\vector.imp(171,3) Hint: Identifier already defined in vector.int at line 35 C:\Programme\Lazarus\units\dcal3d.pas(356) Fatal: There were 7 errors compiling module, stopping --------------------------------------------- TCodeToolManager.InitCurCodeTool MainCode=nil
Meine Frage ist also: Wie kann ich die dglOpenGL mit Lazarus benutzen?
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Ich kann Dir versichern, dass Lazarus sehr gut mit dglOpenGL funktioniert, sowohl in Windows, als auch in Linux. Um aber irgendwas dazu sagen zu können, wäre es notwendig, ein paar genauere Anagben zu haben, was Du da machst. Z.B: die Version des dglOpenGL.pas wäre nicht schlecht. Und Du kompilierst etwas aus dem DGLSDK, das - vorsichtig ausgedrückt - schon etwas verstaubt ist. Der neueste dglOpenGL-Header hat sich seit 2006 etwas weiterentwickelt. Kann ich jetzt nicht sagen, ob sich dadurch Probleme ergeben.
Was Du da übersetzt ist Cal3D, das in einem SDL-Unterverzeichnis steckt. Weiß ich jetzt nicht auswendig, aber vielleicht braucht man dazu das SDL?
Und hast Du Lazarus auf den Delphi-Modus umgestellt?
Hast Du diese Dinge vorher mit Delphi kompilieren können?
Öhm, es wäre vielleicht nicht schlecht für den Anfang, mal zu schaun, ob sich ein kleines TestProjekt kompilieren lässt?
Traude
windres: can't open file `TForm1': No such file or directory
Die lfm/lrs-Datei habe ich mit Werkzeuge>DFM- in LFM-Datei umwandeln erstellt.
Ich weiss ja noch nicht einmal, ob die OpenGL-Sachen jetzt funktionieren, weil ich bislang ja nicht soweit gekommen bin, dass ich was ausprobieren kann.
Wie mache ich, dass es geht?
Im Übrigen habe ich bereits ein anderes Delphi-(Test)-Projekt zum Laufen gebracht - aber mit Form. Ich frag mich echt, woran das liegt.
Aja, in Delphi7 buildet alles nach wie vor ohne Probleme.
EDIT
Ich hab's hinbekommen.
Zuletzt geändert von Typhox am Di Jan 06, 2009 12:48, insgesamt 1-mal geändert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Um eine .lrs einzubinden, musst du folgendes vor dem end. der Unit tun:
Code:
initialization
{$I unit1.lrs}
wobei unit1 natürlich entsprechend angepasst werden sollte.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
...Zumindest unter Windows.
Jetzt bin ich gerade dabei, das unter Linux (Ubuntu 8.10 x64) zu probieren. Leider geht mal wieder irgendwas nicht. Wenn ich das Programm starte, kommt erstmal 'ne Meldung, dass er irgendein Free Pascal-Directory nicht finden konnte. Dessen unbeachtet habe ich mich weiter vorangewagt und das Programm von vorhin nochmal zu kompillieren versucht. Diesmal scheint Lazarus mit dem Assembler-Code in der Geometry.pas nicht klarzukommen. Erst meckert es, dass da ASM anstelle von begin steht, nachdem ich jetzt mehrere Male den Assembler-Style unter Project>Compiler Options>Parsing geändert habe, meckert er nur noch über den ASM-Inhalt
Code:
asm
FLD Theta
FSINCOS
FSTP TBYTE PTR[EDX]// cosine
FSTP TBYTE PTR[EAX]// sine
FWAIT
end;
Über die Zeilen FSTP TBYTE PTR [EDX] und FSTP TBYTE PTR [EAX] und meint im Intel-Style:
Zitat:
Geometry.pas(397,34) Error: Asm: 16 or 32 Bit references not supported
Und im AT&T-Style kann man's sowieso vergessen.
Ich weiß schon wieder nicht weiter... Was jetzt?
Da ich ein 64-Bit Betriebssystem benutze, habe ich natürlich auch die amd64-Version installiert. Kann es daran liegen?
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.