Seite 1 von 1

ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 18:41
von maxx2097
Hallo zusammen,

ich bin vor kurzem über die ASSIMP Import Library gestolpert. Ich würde die Lib nun gerne in einem iPhone Projekt testen. Leider habe ich es aber nicht geschafft den Source-Code mit Xcode zu kompilieren. Andere Forumsbeiträge lassen aber darauf schliessen, dass dies möglich sein sollte, schweigen sich aber leider über die Details aus.
Es wäre wirklich super, wenn mich jemand diesbezüglich mal aufs Gleis setzen könnte... die objC Wrapper bekomm ich dann schon hin ;)

Danke und Gruß

Maxx

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 19:54
von Chromanoid
Mmh woran hapert es denn? Ich habe mir die Sources einfach in ein Projekt gezogen (hatte keine Lust mich mit statischen Bibliotheken unter XCode zu beschäftigen):
folders.PNG
folders.PNG (6.56 KiB) 1498 mal betrachtet
Und dann ASSIMP_BUILD_NO_COMPRESSED_X, ASSIMP_BUILD_BOOST_WORKAROUND in den GCC Preprocessor Definitionen des Projektes eingetragen.

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:28
von maxx2097
Das mit dem BOOS_WorkAROUND funktioniert bei mir irgendwie nicht... Ich habe auch die Folder "code", "contrib" und "include" aus dem aktuellen 2.0 sdk hinzugefügt und bei LLVM GCC 4.2 -> Preprocessor Macros -> Debug die entsprechenden Strings eingetragen. Dann bekomme ich beim kompilieren aber 40+ Fehler :(

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:34
von Chromanoid
Ich hab momentan leider kein XCode/Mac. Der Projektdatei kann ich entnehmen, dass ich noch den Boost-Workaround-pfad bei den Suchpfaden für Header-Dateien angegeben habe. Aber als ich das damals gemacht habe, hab ich ziemlich viel mit den Projekteinstellungen rumgeprokelt, kann also gut sein, dass das gar nicht notwendig ist... wäre aber plausibel, da die header von boost ja mit #include<boost/*> eingebunden werden.

Code: Alles auswählen

C01FCF4F08A954540054247B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_PREPROCESSOR_DEFINITIONS = (
					ASSIMP_BUILD_NO_COMPRESSED_X,
					ASSIMP_BUILD_BOOST_WORKAROUND,
				);
				GCC_VERSION = 4.2;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				HEADER_SEARCH_PATHS = "lib/assimp/code/BoostWorkaround/**";
				PREBINDING = NO;
				SDKROOT = iphoneos3.0;
			};
			name = Debug;
		};

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:41
von maxx2097
Hi!

das war schonmal ein wichtiger Hinweis... Vielen Dank! Nun tut sich schon mal wesentlich mehr. Allerdings legt er sich dann dabei auf die Nase:

include <cppunit/config-auto.h>

Die Datei wird nicht gefunden, bzw. ich kann sie auch nicht finden.

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:46
von Chromanoid
wo steht denn das? ist das nicht nur in den unit tests? hast du vielleicht den ordner "test" mit eingebunden? den könntest du mal raushauen...

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:50
von maxx2097
Jo!

Das scheint es gewesen zu sein... der Ordner nannte sich cpp-unit-1.12.1... ohne den kompiliert es durch.

Tausend Dank!

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 15.03.2011, 20:58
von Chromanoid
gerne, es gibt übrigens auch in "assimp > workspaces > xcode3" xcode-projekteinstellungen für assimp. vielleicht solltest du die mal austesten, denn was wir hier gemacht haben war eher ne quick&dirty lösung von mir von damals ^^

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 16.03.2011, 00:42
von maxx2097
Das hab ich mir schon mal angesehen... ist aber für macos. Somit wäre es wahrscheinlich komplizierter das an das iOS anzupassen.

Noch eine Frage: Es kompiliert nun auch als static Lib... allerdings werden das dann ca. 90MB (debug) bzw. 70MB (release).

Ist das normal, dass das so groß wird?

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 16.03.2011, 05:47
von Krishty
Ja; der Compiler optimiert das beim finalen Einbinden runter.
(Unter Windows x64 kompiliert Assimp bei mir regelmäßig zu 150 MiB.)
Falls es am Ende doch noch zu groß sein sollte, kannst du bestimmte Loader per #define ausschließen.

Gruß, Ky

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 16.03.2011, 14:05
von kimmi
Hast du versucht, dir mittels CMake Projekt-Dateien zu erzeugen oder hast du die bestehenden XCode-Projekte benutzt?

Gruß Kimmi

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 16.03.2011, 19:40
von maxx2097
kimmi hat geschrieben:Hast du versucht, dir mittels CMake Projekt-Dateien zu erzeugen oder hast du die bestehenden XCode-Projekte benutzt?

Gruß Kimmi
Weder noch... ich habe die entsprechenden Ordner (code, include, contrib) einfach in ein frisches XCode Projekt gezogen.

Re: ASSIMP für iPhone als Lib kompilieren

Verfasst: 16.03.2011, 21:10
von kimmi
Mit dem CMake solltest du dir die XCode-Sachen recht zackig generieren können. In der Konsole im Assimp-Root-Verzeichnis cmake -i für den Wizard-Mode.

Gruß Kimmi