Exe Größe

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

BamBam

Betreff: Exe Größe

BeitragDi, Okt 14, 2008 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mal wieder ne Frage:

Je mehr Quelltext ich habe, desto größer wird die Exe, ist ja eigentlich auch logisch, ich dachte aber man könnte das mit Import test.bmx umgehen weil dann die eigentliche Datei kleiner ist und nur auf diese Bibliothek zugreift. Muss ich immer auch die Bibliothek compelieren und bekomme irgendwann ne 20Mb Exe oder gibt es da noch andere möglichkeiten?

Lunatix

BeitragDi, Okt 14, 2008 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Arbeite mit einem Framework und importiere nur das was du brauchst. Mehr kannst du nicht machen, vielleicht noch einen Exe Packer.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

BamBam

BeitragDi, Okt 14, 2008 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Was mich gerade verunsichert ist, das die meisten andere programme unter 2MB bei der exe haben und meine Exe nun schon 2,5 Mb groß ist und ich bestimmt nicht mehr Code habe als die anderen. Was genau könnte man da ändern damit die Exe nicth einfach größer wird?

Progger93

BeitragDi, Okt 14, 2008 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
schalt mal den Debugger beim compilen aus. Das wirkt wahre Wunder Smile

MFG Progger93
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

Farbfinsternis

BeitragDi, Okt 14, 2008 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Lerne lesen!

Verwende ein Framework und importe _dann_ nur die Module die Du benötigst. Dann wird auch die Exe kleiner.
Farbfinsternis.tv
 

BamBam

BeitragDi, Okt 14, 2008 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit einem Framework meinst du ein Set an BMX dateien? die das tun was ich will?

Das mit dem Debugger ausschalten war nen guter Typ Wink nun ist die Exe nur noch 1Mb statt 2,5MB groß danke für den Tip!
  • Zuletzt bearbeitet von BamBam am Di, Okt 14, 2008 18:08, insgesamt einmal bearbeitet

FOODy

BeitragDi, Okt 14, 2008 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein das Schlüsselwort:

Code: [AUSKLAPPEN]
SuperStrict
Framework brl.standardio

Print "Hello World!"


EDIT:
Btw das geht nur in der "Haupt"-Quelltext Datei.
Wenn du eine *.bmx importierst, musst/darfst du bei der importierten *.bmx keinen Framework definieren.
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

BamBam

BeitragDi, Okt 14, 2008 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok dann weiss ich leider zu wenig über ein Framework, kann ich sowas aus meiner eigenen bmx datei erstellen? weil einfach nur Framework statt import davor funktioniert nicht!

Import "Mod/tangram/tangram.bmx"

FOODy

BeitragDi, Okt 14, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Framework akzeptiert nur Module.
D.h. Framwork ModuleScope.ModuleName

Notfalls kannst du einfach das Module "brl.blitz" als Framework benutzen, da es so oder so importiert wird.

Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

BamBam

BeitragDi, Okt 14, 2008 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Was genau zeichnet ein Modul aus ? Wenn ich meine text.bmx in den ordner der Module in test.mod schiebe, sagt er mir immer das ein Interface fehlen würde.

FOODy

BeitragDi, Okt 14, 2008 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Module müsstest du dann natürlich auch als solches kompilieren.
Am einfachsten ist es wenn man einfach "Build modules" macht in der MaxIDE. (Menü: Program -> Build Modules)
Wenn man es aber manuell machen möchte, kann man in den BlitzMax/bin Ordner gehen bzw mit der Konsole dahin, und dann ein "bmk makemods [DeinModuleScope[.DeinModuleName]]" (das in [] ist optional; "bmk makemods" würde einfach alle Module neu bauen, in denen Änderungen vorgenommen wurden)

[edit] Mehr dazu gibt es hier: https://www.blitzforum.de/foru...hp?t=22260

Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

BladeRunner

Moderator

BeitragDi, Okt 14, 2008 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ein Modul ist was anderes als dein Programm. Ein Modul ist quasi eine Ansammlung nützlicher Befehle und Funktionen die du in dein Programm einbauen kannst.
Alle mit BMax mitgelieferten Befehle sind in solchen Modulen drin, und standardgemäß werden diese alle beim kompilieren der .exe beigefügt.
Der Befehl Framework hebt dieses generelle Beifügen auf und fügt zuerst mal nur das mit ihm genannte Modul bei. Sollten noch andere benötigt werden können sie mit IMPORT beigefügt werden.
So erreicht man dass nur die Befehle und Funktionen mitkompiliert werden die das Programm auch wirklich braucht, und so sind durchaus .exe-Größen von <50kb möglich.

Such auf bb.com mal nach dem Framework Assistant. Ein sehr nützliches Tool welches dir meist richtig erkennt welches Framework Du erstellen musst um deine exe so klein als möglich zu halten.
EDIT: Hier isser: http://homepage.ntlworld.com/config/fa/fa.zip
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

BamBam

BeitragDi, Okt 14, 2008 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Danke für eure Hilfe, alles gar nicht so einfach wie es aussieht Wink
 

Dreamora

BeitragDi, Okt 14, 2008 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ausser man schaut einfach Mal rasch in die Hilfe was du nach der ersten Antwort eigentlich hättest tun sollen wenn dir der Befehl Framework nichts sagt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

klin

BeitragDi, Okt 14, 2008 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
benutz Framework assistent (http://homepage.ntlworld.com/config/fa) benutz ich auch immer. Der sagt dir immer, was du in Framework eintragen musst.
Und Module sind die Befehle die du in Blitzmax eintippst. Also in jedem Modul, ist jeweils ne abteilung für bestimmte befehle. Aber wie gesagt... wenn du mit Framework nicht klar kommst, benutz den assistenten... Der ist echt gut.

MFG
Klin

P.S. Das Modul sieht du auch in der help (F1)... dort steht ganz oben z.B. brl.solala. Das ist der Modul name.

Lunatix

BeitragMi, Okt 15, 2008 3:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Toll nachgeplappert Rolling Eyes Rolling Eyes Aber Hauptsache was gesagt... dein Post ist vollkommen Unnötig, da Bladerunner eine wunderbare Erklährung abgab. Wenn man schon Antwortet, sollte man zumindest das Thema mal komplett Überflogen haben...

Und falls du damit noch nicht vertraut gemacht worden bist, BamBam: Klicke auf Erweiterte Suche, tippe "Framework", wähle die Passende Kategorie aus und erfreu dich an dem tollen Wissen, was dir vermittelt wird. Selbiges funktioniert auch auf Blitzbasic.com oder in der Forenhilfe... =)

Was ich dir auch noch ans Herz legen kann, wenn du wirklich mit BlitzMax gut programmieren möchtest: Versuche, bei deinen Projekten den Framework Assistant nicht zu nutzen, sondern merke dir, welche Module du benötigst. Zum lernen ist da FA dort ganz gut, bauchst du jedoch mal Hilfe zu einem Befehl, und du weisst, in welchem Modul dieser Befehl liegt, kannst du rasch das Modul öffnen und dir den Befehl ansehen.

Das ist, wie ich finde, sehr nützlich beim Programmieren.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

klin

BeitragMi, Okt 15, 2008 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun war dein eintrag unnötig...
und ausserdem, weiß ich welches Modul zu welchem gehört! Doch da ich wohl leider zu faul bin, benutzter ich FA damit ich nicht die einzelnen auflisten muss.
Und uasserdem kann BamBam selbst entscheiden, auf er die auflisten möchte oder FA benutzt... Das macht keinen unterschied, ob er ein guter programmierer ist oder ein schlechter.

MFG
Klin

Lunatix

BeitragMi, Okt 15, 2008 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, mein Beitrag behandelte deinen, sowie auch das Thema. Folglich ist er nicht Unnötig.
Auch habe ich nie gesagt, das du nicht wüsstest, welches Modul wohin gehört, das ist eigendlich vollkommen Egal.

Noch dazu habe ich BamBam nichts Befohlen, ich habe ihm nur diesen Tipp gegeben, da man, wenn man weiss, welches Modul welchen Befehl enthält, auch einen Befehl mal schnell nachschauen kann. Das ist sehr nützlich, wenn man mit BlitzMax grössere Projekte oder Module etc. Programmiert.

Und für mich gehört das zum guten Programmieren dazu, da man, wenn man sich den Befehl anschaut, auch wissen sollte, was er Bewirkt. Wie er funktioniert etc. Ist sehr nützlich.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Xeres

Moderator

BeitragMi, Okt 15, 2008 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Selbst mit einem Framework kann man die exe mit UPX noch um ein ansehnliches Stück verkleinern.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

BamBam

BeitragDo, Okt 16, 2008 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe hier in keinster Weise das Gefühl, dass mir irgend jemand etwas befiehlt und danke nochmal für eure rege Hilfe, die mir wirklich immer sehr hilft. Es tut mir leid wenn ich dies alles auch aus einem Hilfe hätte bekommen können, doch fällt es mir nicht immer so leicht an Hand von einer Hilfe all diese Inhalte zu verstehen. Wenn einem jemanden das in einem Forum erklärt wird es dann doch meistens deutlicher.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group