Seite 1 von 6
PureBasic unter Mac
Verfasst: 12.12.2014 22:03
von stevie1401
Leider habe ich es nicht geschafft Purebasic unter Mac zum laufen zu bringen.
Xcode ist installiert.
PB lässt sich aufrufen, der Code wird geladen, dann passiert allerdings nichts mehr.
Drücke ich F5 wird compiliert und das Fenster geht wieder weg. Es passiert einfach nichts.
Die compilieten Apps starten dann nicht und es kommt die Meldung die Dateien seien fehlerhaft.
OsX 10.8 oder wie das heisst. Das neuste halt.
Re: PureBasic unter Mac
Verfasst: 13.12.2014 12:05
von mk-soft
Xcode unter Mac einmal aufrufen. Dann werden erst die Komponenten installiert.
Re: PureBasic unter Mac
Verfasst: 13.12.2014 12:07
von mk-soft
stevie1401 hat geschrieben:OsX 10.8 oder wie das heisst. Das neuste halt.
nicht ganz... OS X 10.10.1
Re: PureBasic unter Mac
Verfasst: 13.12.2014 12:53
von stevie1401
Leider sind meine Mac-Kenntnisse sehr begrenzt.
Besteht ein Unterschied zwischen Installieren und Aufrufen?
Installiert ist es zu 100%
Kann man inzwischen den neuesten xCode nehmen?
6x oder soll man den 5x nehmen?
Re: PureBasic unter Mac
Verfasst: 13.12.2014 13:03
von mk-soft
Nach der ersten installation von Xcode ist noch nicht alles eingerichtet. Beim ersten start von Xcode werden noch weiter Komponenten nachinstalliert.
Bei mir verwende ich die aktuellste Version von Xcode.
Es lohnst sich auch auf Yosemite zu wechseln. Bei mir hatte ich keine Probleme von Maverick auf Yosemite zu wechseln.
Datensicherung aber auf jeden fall durchführen.
Re: PureBasic unter Mac
Verfasst: 17.12.2014 12:26
von stevie1401
Nachdem wir xCode 511 neu installiert haben und einmal ausgeführt haben, scheint die PB-IDE zu funktionieren.
Folgender Code funktioniert allerdings unter Mac nicht:
Code: Alles auswählen
If InitSound()
DokoLoungeSound = LoadSound(#PB_Any, exepath+"/inc/sound/lobbyeintritt.wav") ;<<<<<----hier kommt die Meldung "Speicherfehler", Prog bricht hier ab
PlaySound(DokoLoungeSound) ;hier hin kommen wir gar nicht mehr
EndIf
Desweiteren scheint der Code für exepath nicht zu funktionieren:
Code: Alles auswählen
exepath=GetCurrentDirectory() ;funktioniert mit einem Mac
exepath=GetPathPart(ProgramFilename()) ;funtkioniert NICHT mit einem Mac
Re: PureBasic unter Mac
Verfasst: 17.12.2014 12:35
von NicTheQuick
Kannst du das bitte ins Bug-Forum posten? Mit Angabe von PB-Version, Mac OS-Version, Beispielcode und Compiler-Einstellungen?
Und falls du des englischen mächtig bist, würde ich dir sogar direkt empfehlen ins englische Bug-Forum zu posten:
Board index » Bug Reports » Bugs - Mac OSX
Re: PureBasic unter Mac
Verfasst: 17.12.2014 12:48
von Danilo
stevie1401 hat geschrieben:Desweiteren scheint der Code für exepath nicht zu funktionieren:
Code: Alles auswählen
exepath=GetCurrentDirectory() ;funktioniert mit einem Mac
exepath=GetPathPart(ProgramFilename()) ;funtkioniert NICHT mit einem Mac
Code:
Code: Alles auswählen
Debug GetCurrentDirectory()
Debug GetPathPart( ProgramFilename() )
Ausgabe:
Code: Alles auswählen
/Users/danilo/PureBasic/x86/PureBasic/PureBasic.app/Contents/
/tmp/PureBasic.0.app/Contents/MacOS/
GetCurrentDirectory() zu verwenden ist falsch. In meinem Beispiel gibt es den Pfad innerhalb
von PureBasic.app zurück, und das ist die PB IDE.
GetPathPart(ProgramFilename()) gibt aber den richtigen Pfad zurück. Bei einem Konsolenprogramm
ist das direkt der Pfad wo das Programm liegt. Ein .app Programm ist aber eine spezielle Ordnerstruktur,
die als Paket behandelt wird.
Deine Sounds musst Du in die .app hinein kopieren, wenn Du sie mit exepath+"/inc/sound/lobbyeintritt.wav"
laden möchtest. Der komplette Pfad ist dann "Your.app/Contents/MacOS/inc/sound/lobbyeintritt.wav".
Re: PureBasic unter Mac
Verfasst: 17.12.2014 15:52
von stevie1401
OK, fangen wir von vorne an:
Mein Programm befindet sich z.B. im Ordner /Stevie/TestProgOrdner/ ;in diesem Ordner befindet sich das Programm incl Unterordner
Mit
exepath=GetCurrentDirectory()
lande ich in genau diesem Ordner, und so soll es sein.
Mit
exepath=GetPathPart(ProgramFilename())
lande ich NICHT in diesem Ordner, deshalb ist es FALSCH.
Da dieser Code unter Mac nicht funktioniert...
If InitSound()
DokoLoungeSound = LoadSound(#PB_Any, exepath+"/inc/sound/lobbyeintritt.wav") ;<<<<<----hier kommt die Meldung "Speicherfehler", Prog bricht hier ab
PlaySound(DokoLoungeSound) ;hier hin kommen wir gar nicht mehr
EndIf
Wie kann ich den Sound in jenem Ordner unter Mac zum laufen bekommen?
Der Benutzer kann ggf. die Datei ändern, deshalb muss sie in diesem Ordner bleiben.
Unter Win und Linux geht das problemlos.
Wie bekomme ich ein funktionierendes Exepath unter Mac hin?
Ich muss zwingend im meinem eigenen Programmordner bleiben und kann nicht vom Benutzer erwarten, dass er irgendwelche Dateien in irgendwelche Images kopiert. Wie auch immer das überhaupt geht.
Re: PureBasic unter Mac
Verfasst: 17.12.2014 16:35
von ts-soft
Es gibt 2 unterschiedliche Pfade. GetCurrentDirectory funktioniert nur in der IDE, aber nicht als Exe!
Als Exe nimmste den von Danilo vorgeschlagenen Pfad.
Am besten: Temporäres Executable im Quellcode-Verzeichnis erstellen (Compilerdirective) anhaken,
dann sollten beide Pfade gleich sein.
Falls es immer noch nicht klappt, müßte Dir allerdings jemand mit einem Mac helfen, hab leider keinen
Gruß
Thomas