2012-05-14 16 views
11

Ich kann nicht XCode, aber wirklich liebe OpenFrameworks, und ich weiß, dass es auf Linux + Win32 funktioniert, so dass ich nicht sehe, warum es sollte XCode abhängig sein. Wenn ich XCode installieren muss, ist das in Ordnung, ich möchte es überhaupt nicht verwenden.Kann ich OpenFrameworks unter OS X verwenden, ohne XCode verwenden zu müssen?

+0

Ich möchte das auch wissen. Ich habe nur ein Kopfgeld darauf ... detaillierte Anweisungen geschätzt. – daj

Antwort

11

Xcode verwendet intern gcc/llvm. Tatsächlich können Sie über die Befehlszeile in ein Verzeichnis mit einem openFrameworks-Projekt wechseln und einfach xcodebuild eingeben. aber das erlaubt Ihnen nicht, die Projektdatei zu bearbeiten und neuen Quellcode usw. hinzuzufügen.

Die Linux-Makefiles könnten so angepasst werden, dass sie auch auf OSX funktionieren. Sie enthalten bereits viele Informationen, die zum Finden der richtigen Quelldateien, Bibliothekspfade usw. notwendig sind. Linux ermöglicht uns jedoch, viele weitere Komponenten als gemeinsam genutzte Systembibliotheken zu installieren, während wir unter OSX die meisten Bibliotheken statisch verknüpfen, also eine Reihe von zusätzlichen Bibliothekspfade müssten hinzugefügt werden. Wahrscheinlich ist das größte Problem, dass alles 32-Bit kompiliert werden muss, was bedeutet, -arch i386 überall zu passieren, so dass Sie nicht einfach abhängige Bibliotheken mit Homebrew oder MacPorts installieren können. Wir sind gerade dabei, auf 64-Bit zu übergehen, aber es gibt immer noch einige QuickTime-Aufrufe, die erfordern, dass wir bei 32 Bit bleiben, hauptsächlich beim Zugriff auf ältere Videoaufnahmegeräte, die viele von uns immer noch für Computer Vision verwenden.

wie @cdelacroix darauf hinweist, dass wir nur Xcode-Projektdateien unter OSX pflegen. Dies ist hauptsächlich auf das Fehlen einer anständigen Alternative zurückzuführen. Es gibt eine Version von Code :: Blocks für OSX, aber es wird nicht sehr gut unterstützt, hat einige Probleme mit dem nativen GUI-Rendering und tendiert dazu, hinter den anderen Plattformen zurückzustehen. Xcode ist auch der einfachste Weg, eine Toolchain unter OSX zu installieren, daher ist für die meisten Benutzer die Installation von Xcode notwendig.

Wenn Sie ein Makefile-basiertes Build-System verwenden und daran interessiert sind, es mittel- bis langfristig zu erhalten, ziehen Sie bitte in Betracht, es dem GitHub-Repository beizulegen, es würde gerne angenommen werden.

+0

Danke für die Info. Ich benutze Emacs für alles, also wäre ich lieber nicht an eine IDE gebunden, weder in der osx noch in der linux Version. Ich bin mit der gnu toolchain wohler als xcode, also würde ich es vorziehen, keine Entwicklungsumgebungen zu wechseln, nur um OF zu verwenden. Es sollte natürlich nicht so schwer sein, ich wünschte nur, es gäbe mehr Dokumentation über das Arbeiten außerhalb von IDEs. – daj

+0

Die Linux-Makefiles sind eigentlich sehr schlau, sie verwenden Shell-Aufrufe, um Arc-Dateien, Bibliotheken und Header-Suchpfade zu finden. openFrameworks ist ein komplexes System, insbesondere mit dem Addon-Konzept, es gibt eine addons.make-Datei, die auf Linux geparst wird, um Addons zu finden, aber dies wird nicht auf OSX verwendet. Nicht sicher, welche anderen Informationen Sie benötigen. OF ist so konzipiert, dass es für Anfänger leicht zu programmieren ist und das gesamte Kernteam IDEs verwendet, aber wie gesagt, Beiträge sind immer willkommen. – damian

2

Sie benötigen Xcode, oder mindestens eine Reihe von Compilern (weitere Informationen sind verfügbar here), aber ansonsten, nein, können Sie bearbeiten/arbeiten mit dem Code in welcher Editor oder Umgebung Sie wollen.

1

Wie @mipadi sagte, gibt es keine Anforderung, Xcode tatsächlich zu verwenden, Sie können so ziemlich alles tun, was Sie in Xcode mit make oder cake oder irgendeinem Ihrer Build-System der Wahl tun. Alles, was Sie tun müssen, ist, die richtigen Befehlszeilenoptionen zu finden, die Sie an die üblichen Tools (Compiler, Linker, Strip usw.) übergeben können. Manchmal ist es einfacher, im Xcode-Buildfenster nachzuschlagen, wie es ist Dinge tun (erweitern Sie die Linien mit dem kleinen Knopf rechts von jeder Zeile).

Zum Beispiel können Sie mit Ihrem Framework der Wahl mit ld-framework Framework -FPathToFramework foo.o oder Ihre dynamische Bibliothek mit ld -lLib -LPathToDylib foo.o verknüpfen. Möglicherweise müssen Sie etwas über @rpath, @loader_path und install_name_tool erfahren, um eine eigenständige Anwendung zu versenden.

Wie bei OpenFrameworks besteht die "Anforderung" für Xcode darin, dass die Autoren beschlossen haben, nur Xcode-Projektdateien beizubehalten. Ich habe mir nur angeschaut, wie sie das machen, sie liefern Quellcode und Xcode-Projektdateien, die statische Bibliotheken aufbauen, so dass es für Sie noch einfacher wird (obwohl Sie die Bibliotheksabhängigkeiten von Hand verknüpfen müssen). Sie müssen wählen, ob Sie alles aus der Quelle in Ihrem Build-System kompilieren möchten (wenn Sie mehr Anpassungsfähigkeit wünschen, ohne Xcode zu berühren), oder einfach nur die 2 statischen Bibliotheken (openFrameworks.a und openFrameworksDebug.a) mit Xcode erstellen und dann in verwenden Ihr Build-System (empfohlen, bis Sie wirklich kontinuierliche Anpassung benötigen).

2

Hier ist ein Link zu einer Make-Datei, die eine Anwendung Openframeworks auf OSX kompilieren:

https://gist.github.com/labe-me/1190981

Legen Sie die Make-Datei im Verzeichnis apps und laufen lassen. Getestet auf OsX 10.6, habe es aber noch nicht mit Addons versucht.

5

As of March 2013, hat openFrameworks offizielle Makefile-Unterstützung für das Kompilieren der Bibliothek selbst. Zum Zeitpunkt des Schreibens wurden die Änderungen jedoch noch nicht in die stabile Version integriert. Sie müssen die Git repository klonen und in den Entwicklungszweig wechseln.

git clone https://github.com/openframeworks/openFrameworks 
cd openFrameworks && git checkout develop 
cd libs/openFrameworksCompiled/project 
make 

Soweit ich das beurteilen kann, müssen wir noch für die Erstellung von Anwendungen gegen die Bibliothek die inoffiziellen Lösungen verwenden.

+0

Kleine Korrektur: Sie möchten "entwickeln" und nicht "Entwicklung" auschecken. Vielen Dank dafür! –