2010-03-24 11 views
6

Ich habe eine Open-Source-C++ - Anwendung geschrieben und es funktioniert gut unter Windows und Linux, ich habe endlich einen Mac Mini (mit 10.5.8), also war ich gerade Testen der Mac-Version.Wie starte ich eine Mac-Anwendung ohne ein Terminalfenster

Meine Anwendung funktioniert gut, wenn es aus dem Inneren eines Terminal-Fenster laufen und ./appname eingeben, aber wenn ich stattdessen auf sie aus dem Finder doppelklicken, dann öffnet sich ein Fenster termnial und dann meine Anwendung läuft, aber es scheint das Arbeitsverzeichnis nicht auf den richtigen Speicherort zu setzen, damit meine App stirbt.

Wie kann ich meine App so konfigurieren, dass beim Start durch Doppelklicken nicht zuerst ein Terminalfenster geöffnet wird und wie kann ich das aktuelle Verzeichnis automatisch auf den Speicherort der Apps setzen lassen?

Antwort

4

Mac-Binärdateien werden mit dem Programm "Terminal" geöffnet. Es gibt keinen anderen Weg, als ein vollständiges Anwendungspaket zu erstellen oder ein anderes Programm über system oder etwas Ähnliches starten zu lassen.

Wenn Sie auf eine Binärdatei doppelklicken, wird das Terminalfenster mit ~ als aktuelles Verzeichnis geöffnet. Ich schlage vor, Sie verwenden chdir(2) in Ihrem Programm, um sicherzustellen, dass es im richtigen Verzeichnis ausgeführt wird, wenn Sie es an erster Stelle benötigen.

+0

Das hat funktioniert! Danke, jetzt läuft meine App, aber das Terminalfenster bleibt über dem Fenster meiner App. Wissen Sie, wie Sie das Terminalfenster verstecken oder schließen können? – KPexEA

+0

@KPexEA: Sie können es leider nicht beide Möglichkeiten haben - Sie schreiben entweder ein generisches Kommandozeilen-Tool oder Sie schreiben eine richtige Mac-App mit einer GUI, mit einem Bundle, .plist etc. –

+0

@Paul R, möchte ich Es ist eine richtige Mac App. Weißt du irgendwo, was dokumentiert, wie man es zu einer richtigen App macht? Ich benutze ein Makefile, um es zu bauen, wenn ich "make bundle" zu meinem Makefile hinzufügen kann, das alles zusammenpackt, wäre das Beste. Es ist eine einzelne exe, keine separaten Dateien werden benötigt. – KPexEA