Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 19.11.2012, 12:51 Titel: Trotz MiniB3D Standalone file? |
|
|
Hi ich hätte mal eine Frage an euch! Und zwar ist es möglich die MiniB3D in die Executable einzubringen so das ich am Ende ein Standalone file erhalte? |
|
Nach oben |
|
|
Westbeam
Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 19.11.2012, 14:29 Titel: |
|
|
Dafür musst du den Quellcode der OpenB3D(so heißt das jetzt)Lib als eine .a Bibliothek kompilieren. Frag mich aber nicht wie das geht, dafür sollte man mehr Erfahrung mit C++ haben. |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 20.11.2012, 10:55 Titel: |
|
|
Ok. Aber die Möglichkeit besteht das es funktionieren würde?
Kennt sich vielleicht jemand in diesem Forum damit aus? |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 20.11.2012, 14:35 Titel: |
|
|
Im Grunde geht das ganz einfach:
Normalerweise hast du ja den OpenB3D Quellcode und compilierst diesen zu einer DLL und verwendest diese dann. Nun machst du im Grunde dasselbe, außer im letzten Schritt linkst du das ganze nicht zu einer DLL, sondern zu einer statischen lib (.a).
Ich hab das mal testweise gemacht und hab dir das Ergebnis hochgeladen (OpenB3D 0.6): http://users.freebasic-portal.de/stw/files/prog/fb/misc/libopenb3d.a
Damit das dann mit FB korrekt linkt, musst du die lib dem fbc entweder per Parameter mitteilen oder eben im Code per Meta-Befehl #INCLIB
Is aber leicht möglich, dass mein Kompilat nicht so funktioniert wie es soll - ich hab z.B. diverse Compiler Warnings einfach mal ignoriert. Müsstest du dir dann halt im Detail anschauen und selber kompilieren. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
harrybro Gast
|
Verfasst am: 21.11.2012, 12:37 Titel: |
|
|
Frag mich aber nicht wie das geht |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 21.11.2012, 16:11 Titel: |
|
|
Ich hab mich mal ein wenig mit dem kompilieren und das einbinden der openb3d lib beschäftigt.
Mein Resultat besteht aus etlichen Fehler Meldungen.
Ich denke man müsste dann auch die Header Datei mit Swig Converten und Manuell bearbeiten
Gibt es nicht schon eine fertige Lib.a mit .bi file von Openb3d für FB? |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 21.11.2012, 17:20 Titel: |
|
|
0oFreako0 hat Folgendes geschrieben: | Gibt es nicht schon eine fertige Lib.a mit .bi file von Openb3d für FB? |
Hast du meine Version ausprobiert?
An den Headern wird nicht viel zu ändern sein -- und schon gar keine neu-übersetzung durch SWIG notwendig sein. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 21.11.2012, 21:11 Titel: |
|
|
Zitat: | Hast du meine Version ausprobiert? |
Jap habe ich.
Bekomme aber lauter Fehler und Warnings angezeigt.
Hier ist mein Testcode der einen Oldschool Tunneleffect und einen Würfel darstellt:
Code: |
#Include "openb3d.bi"
'#Inclib "libopenb3d.a"
#Define Render_OpenGL
#Include "fbgfx.bi"
Dim screen_width As Integer = 640
Dim screen_heigth As Integer = 480
ScreenRes screen_width,screen_heigth,32,,&h10002
graphics3d screen_width,screen_heigth,32,1,1
WindowTitle "OpenB3d Test"
Var light = createlight()
Var cam = createcamera()
MoveEntity cam,0,0,-20
Dim tex As Byte Ptr = ImageCreate(256,256,0,32)
Var texture = createtexture(256,256,1,1)
Dim c As Integer
Dim move_tex As integer = 1
Var tunnel = createcylinder(30)
rotateentity tunnel,90,0,0
scaleentity tunnel,3,20,3
flipmesh tunnel
For x As Integer = 0 To 256
For y As Integer = 0 To 256
c = x*2 Xor y*2
PSet tex,(x,y),c
Next
Next
buffertotex texture,tex+32,1
scaletexture texture,0.2,0.2
entitytexture tunnel,texture
Var cube = createcube()
positionentity cube,0,0,- 15
entitycolor cube,0,0,255
entityalpha cube,0.5
Do
turnentity tunnel,0,0.2,0
turnentity cube,0.1,-0.2,.3
renderworld
Sleep 1
Flip
Loop Until InKey = Chr(27)
clearworld()
End
|
|
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 21.11.2012, 23:29 Titel: |
|
|
Korrekte GCC-Umgebung vorrausgesetzt dürfte sich das auf ein
./configure
CFLAGS=-Wl,-static CCFLAGS=-Wl,static make
ggf. make install
beschränken. |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 22.11.2012, 00:54 Titel: |
|
|
Hab nochmals ein wenig rumprobiert. Meine .a von oberhalb passt jedenfalls, so wie sie hier ist NICHT. Habs nochmals compiliert und dann diverse OpenGL und C/C++ Bibliotheken manuell dazugelinkt. Bis ich dann überall so halbwegs die richtigen Versionen gefunden hatte dauerte es noch ein Weilchen, es kam aber schlussendlich ein Lauffähiges Programm (rotierender blauer Würfel auf rotierendem rot/schwarz kariertem Hintergrund) raus.
Dieses hängt jedoch noch immer von einer "libgcc_s_dw2-1.dll" ab, was du wahrscheinlich dann auch nicht haben willst. Das schau ich mir evt. übermorgen an, wie man die C Library auch noch vollständig statisch reinkompilieren kann. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 22.11.2012, 18:54 Titel: |
|
|
Nimm mal nen Build mit sjlj statt dwarf-2, dann fällt die glaube ich raus. Ansonsten flog da je nach Build auch ne statische Version von rum.
/e: Also jeweils vom Compiler. |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 25.11.2012, 12:04 Titel: |
|
|
Danke euch für eure Hilfen nur bekomme ich es ohne Errors einfach nicht hin. Wäre voll cool wenn der ein oder andere es schaffen würde ein RL zu posten oder halt die freeware tools die man benötigt um die lib zu compilen |
|
Nach oben |
|
|
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 06.12.2012, 11:31 Titel: |
|
|
Offene Referenzen zur dynamischen lib "libgcc_s_dw2-1.dll" werden durch #inclib "gcc_eh" aufgelöst.
Die anderen C++ Verweise mit #inclib "stdc++"
Es versteht sich von selbst das dabei "libgcc_eh.a" sowie "libstdc++.a" von selben MinGW Paket verwendet werden muss womit auch libopenb3d.a" kompiliert wurde.
Die Lib's findet man im Ordner:
Laufwerk:\PfadZuMinGW\lib\gcc\mingw32\4.4.1
Laufwerk:\PfadZuMinGW\lib\gcc\mingw32\4.6.2
oder
Laufwerk:\PfadZuMinGW\lib\gcc\mingw32\4.7.2
Je nach dem mit welcher Version Kompeliert wurde.
micha |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 28.12.2012, 00:42 Titel: |
|
|
Hi ich bin es nochmal.
Auch nach längeren versuchen die minib3d lib in die executable mit einzubinden schlug fehl.
Ich hoffe der ein oder andere kann mir weiterhelfen wie ich es hinbekomme eine Funktiontüchtige lib zu converten. Oder mir weiter helfen kann welche Tools und Sachen ich alle benötige. Wäre euch total dankbar! |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 28.12.2012, 02:43 Titel: |
|
|
- C++ Compiler
- g++ -c -o blabla.o blabla.c für alle C++-Sources
- ar rcs lib<name>.a .o-Dateien
Muss man manuell machen, bei OpenB3D liegt wohl keine Makefile bei. Oder halt selber fix ne Makefile schreiben.
http://pastebin.com/7Yt8S4H6 |
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 28.12.2012, 11:15 Titel: |
|
|
Zitat: |
C++ Compiler
g++ -c -o blabla.o blabla.c für alle C++-Sources
ar rcs lib<name>.a .o-Dateien
Muss man manuell machen, bei OpenB3D liegt wohl keine Makefile bei. Oder halt selber fix ne Makefile schreiben.
http://pastebin.com/7Yt8S4H6 |
Dank dir
Kurze frage noch du kompilierst das bestimmt unter linux oder?
oder würd es auch mit der mingw für windows gehen? |
|
Nach oben |
|
|
Westbeam
Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 28.12.2012, 15:08 Titel: |
|
|
MinGW gibts auch für Windows, sollte dort also auch gehen. |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 30.12.2012, 18:48 Titel: |
|
|
MinGW gibts nur für Windows
Aber ja, sollte gehen. Ich hab's allerdings nicht ausprobiert. |
|
Nach oben |
|
|
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
|
Nach oben |
|
|
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 03.01.2013, 17:18 Titel: |
|
|
Thx @ll ich werd mir das mal mit der Static Variante anschauen |
|
Nach oben |
|
|
|