Build Error: failed to compile freeaudio.cpp

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Tritium

Betreff: Build Error: failed to compile freeaudio.cpp

BeitragDo, Apr 21, 2011 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, der Titel sagt's eigentlich schon: Beim Kompilieren meines (ersten) eigenen Moduls bekomme ich folgenden Fehler:

Code: [AUSKLAPPEN]
Building Modules
Compiling:freeaudio.cpp
Build Error: failed to compile E:/BlitzMax/mod/pub.mod/freeaudio.mod/freeaudio.cpp
Process complete


Ich hab die neueste MinGW-Version installiert und die Umgebungsvariablen gesetzt. Mein Modul besteht im Moment aus nicht mehr als dem Rem-Block am Anfang, Module, ModuleInfo, Strict und einem "Import BRL.Blitz".

Wäre nett, wenn jemand eine Lösung kennt.

[Edit]
Hab mal den Titel ein bisschen geändert, da die vollständige Fehlermeldung zu lang war.

Thunder

BeitragDo, Apr 21, 2011 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Gehe ich richtig in der Annahme, dass du in der IDE "Build Modules" oder "Rebuild all Modules" drückst?
(sonst würde BlitzMax nicht versuchen pub.freeaudio zu bauen)
Hast du bei MinGW auch den C++ Compiler installiert?
(wenn nicht, ist es klar, wieso MinGW versagt)
Wenn ja, dann probiere bitte Mal, in die Kommandozeile einzusteigen; dann in den Unterordner bin/ (im BlitzMax-Hauptverzeichnis) zu wechseln und dort folgende Zeile einzugeben:
Zitat:
bmk makemods -a dein.modul


mfg Thunder

PS: brl.blitz musst du nicht importieren.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

Tritium

BeitragDo, Apr 21, 2011 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Thunder hat Folgendes geschrieben:
Gehe ich richtig in der Annahme, dass du in der IDE "Build Modules" oder "Rebuild all Modules" drückst?

Jau, das stimmt. Muss ich was anderes machen? Hab davon keine Ahnung Wink

Thunder hat Folgendes geschrieben:
Hast du bei MinGW auch den C++ Compiler installiert?
(wenn nicht, ist es klar, wieso MinGW versagt)

Jetzt hab ich die offizielle Lizenz, mir in den Allerwertesten zu beißen Evil or Very Mad

Thunder hat Folgendes geschrieben:
PS: brl.blitz musst du nicht importieren.

Hab mich eh gefragt, was ich eigentlich importieren muss. Wird bei einem Modul standardmäßig alles importiert? Oder nur BRL.Blitz? Hab mich eh gewundert, dass in den Quellcodes kein "Framework", dafür aber "Import" auftaucht.

blackgecko

BeitragDo, Apr 21, 2011 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
"Build Modules" in der IDE heißt, nur die Module kompilieren, die nicht kompiliert sind, bei "Rebuild all Modules" werden alle Module neu kompiliert - das kann etwas dauern.

Soweit ich weiß wird bei einem Modul standardmäßig gar nichts importiert. Du musst dich selbst drum kümmern, dass alles eingebunden wird, was das Modul braucht.
Ausnahme sind grundlegende BlitzMax-Bestandteile, die auch intern gebraucht werden - und die sind alle versammelt in brl.blitz!
Wenn du so willst, bewirkt "import brl.blitz" damit eigentlich gar nichts.
Ach ja: "Framework" darf in einem Modul nicht auftauchen (würde ja auch keinen Sinn machen), deshalb hast dus nirgends gefunden Wink
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

mpmxyz

BeitragDo, Apr 21, 2011 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Welche Umgebungsvariablen hast du geändert? "Path" und "MinGW"?
Welche Werte hast du gesetzt/angefügt?
Ansonsten kann ich dir die Option über "Ausführen..."/Startmenüsuche empfehlen. (unterm Strich das gleiche wie mit der Komandozeile)
Dort gibst du dann dies ein und führst es aus: "C:\<BlitzMax-Pfad>\bin\bmk makemods -a <name1.name2>"
Um etwas auch mit Threads nutzbar zu machen, musst du dies noch über "C:\<BlitzMax-Pfad>\bin\bmk makemods -a -h <name1.name2>" kompilieren.
mfG
mpmxyz
PS @blackgecko: Bei mir wird bei jeder Möglichkeit jedes Modul kompiliert.
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

blackgecko

BeitragDo, Apr 21, 2011 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@mpmxyz:
Bei mir nicht. Und laut Sourcecode der MaxIDE sollte das auch nicht so sein:
BlitzMax: [AUSKLAPPEN]
Case MENUBUILDMODULES
If CheckDemo() BuildModules False
Case MENUBUILDALLMODULES
If CheckDemo() BuildModules True
[...]
Method BuildModules(buildall)
Local cmd$,out$,exe$
output.Stop
SaveAll
cmd$=quote(bmkpath)
cmd$:+" makemods "

If buildall cmd$:+"-a "
If threadedenabled cmd:+"-h "

Execute cmd,LocalizeString("{{output_msg_buildingmods}}")
End Method
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.
 

Tritium

BeitragDo, Apr 21, 2011 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hab MinGW neu installiert, jetzt kompiliert er auch brav.

@mpmxyz: Ja, hab beide Umgebungsvariablen gesetzt (also bei PATH den Pfad für MinGW mit Semikolon hinzugefügt). Wo liegt denn der Unterschied zwischen dem Menüpunkt "Build Modules" und der Anweisung per Kommandozeile?

[Edit]
Neues Problemchen. Folgender Code:
BlitzMax: [AUSKLAPPEN]
Print "Hello World"
End

...erzeugt folgende Ausgabe:
Code: [AUSKLAPPEN]
Building untitled1
Compiling:untitled1.bmx
flat assembler  version 1.68  (1022714 kilobytes memory)
3 passes, 2513 bytes.
Linking:untitled1.debug.exe
Executing:untitled1.debug.exe
Warning: .drectve `-aligncomm:"_joyhandle",5' unrecognized
Warning: .drectve `-aligncomm:"_ReadStream",2 ' unrecognized
Warning: .drectve `-aligncomm:"_WriteStream",2 ' unrecognized
Warning: .drectve `-aligncomm:"_ccinfo",5 ' unrecognized
Warning: .drectve `-aligncomm:"_jerr",5' unrecognized
Warning: .drectve `-aligncomm:"_stdin_",2 ' unrecognized
Warning: .drectve `-aligncomm:"_stdout_",2 ' unrecognized
Warning: .drectve `-aligncomm:"_stderr_",2' unrecognized
Warning: .drectve `-aligncomm:"_bbGCStackTop",2 ' unrecognized
Warning: .drectve `-aligncomm:"__bbusew",2' unrecognized
Warning: .drectve `-aligncomm:"__bbNeedsLock",2 ' unrecognized
Warning: .drectve `-aligncomm:"__bbLock",2' unrecognized
Hello World

Process complete


Was sagt mir das?
 

Jumper

BeitragFr, Apr 22, 2011 2:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Vor dem Problem stand ich am Anfang auch. Mit alten Versionen von MinGW scheint alles kein Problem zu sein, doch die findet man heute nur noch schwer oder auch gar nicht. Ich hatte zumindest keine Version gefunden mit der es wirklich funktioniert hätte.

Nach langer Suche hatte mir ein Beitrag im englischem Forum geholfen das Problem zu lösen: Hier das wesentliche auf Deutsch:
Wenn Du eine neuere Version von MinGW nutzt, und das wirst Du wenn ich die Fehlermeldung betrachte, sind diese Schritte notwendig, damit die Erstellung wirklich funktioniert:

Überschreibe die Dateien blitzmax/bin/ar.exe und blitzmax/bin/ID.exe mit den gleichnamigen Dateien aus dem Verzeichnis MinGW/bin
Außerdem musst Du alle Dateien aus dem Verzeichnes mingw/lib nach blitzmax/lib kopieren. Gleichnamige Dateien müssen dabei Überschrieben werden!

Hat bei mir wunderbar geholfen. Seitdem klappt es mit Build Modules und auch mit der Kommandozeile ohne Probleme.

mfg. Jumper
 

Tritium

BeitragFr, Apr 22, 2011 9:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat auf Anhieb geklappt, danke! Very Happy

Ich hatte hier in einigen Beiträgen gelesen, dass man wohl Version 3.1.0.1 von MinGW braucht, allerdings hab ich die nicht gefunden und dann notgedrungen die neueste installiert. Außerdem gabs auch nirgendwo eine eindeutige Aussage, ob man MinGW überhaupt braucht, wenn man nur mit BMax programmiert. Angeblich sollte es dann auch ohne gehen, allerdings waren bei mir die Menüpunkte ausgegraut, um Module builden zu können.

BladeRunner

Moderator

BeitragFr, Apr 22, 2011 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mit BMax auch ohne GCC arbeiten- du kannst dann nur keine Module erstellen (wobei selbst das eigentlich nur bedingt zutreffen dürfte, es betrifft ja nur Sources die C++-Codes mit einbinden). Ansonsten ist die Sprache auch ohne GCC voll funktionsfähig, da BMax ja mittels FASM direkt in Maschinencode übersetzt.
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
 

Jumper

BeitragFr, Apr 22, 2011 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
(wobei selbst das eigentlich nur bedingt zutreffen dürfte, es betrifft ja nur Sources die C++-Codes mit einbinden)


Das glaube ich eher nicht, denn ohne MinGW wird kein neues Modul eingebunden, siehe Hallo Welt von Tritium. Die Erfahrung hatte ich auch so gemacht.
Man kann BMax zwar nutzen, und eigenen Code wie bisher bei BB mit Includes einbinden, aber eigene Module sind nach meiner Meinung nur mit MinGW möglich.

mfg Jumper

Thunder

BeitragFr, Apr 22, 2011 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne es jetzt getestet zu haben (MinGW deinstallieren, testen und wieder installieren ist etwas umständlich), denke ich doch, dass BladeRunner recht hat. BlitzMax Quelltext wird mit flat assembler assembliert, dann mit ld gelinkt und im Fall von einem Modul noch mit ar zu einer Lib umgebaut.
Das heißt, BlitzMax-Quelltexte, die nur bereits kompilierte Module importieren sollten ohne MinGW kompiliert werden können (unabhängig davon, ob das jetzt eine Applikation oder ein Modul ist).
Falls es jemand weiß und ich falsch liege, bitte ich, mich zu korrigieren.

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

Jumper

BeitragDi, Mai 10, 2011 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich gerade eine neue Festplatte einrichte, habe ich mal schnell den Test ohne installiertem MinGW gemacht.
Tatsächlich, ein Modul kann man aus BMax-Code auch ohne MinGW erstellen.

Hätte ich nicht gedacht, da es Anfangs bei mir nicht funktioniert hatte. Aber vermutlich hatte ich da noch andere Fehler gemacht.

Mfg Jumper

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group