Ich habe endlich nochmal an meinem Spiel weitergemacht. Und dabei das Buildsystem auf CMake umgestellt. Und natürlich im Zuge dessen versucht Assimp zu kompilieren. Es kamen wieder die selben Fehler, die ich früher hatte:
http://zfx.info/viewtopic.php?f=4&t=927&hilit=assimp
Dann hab ich ein bisschen gesucht, wie ich das wohl umgehen könnte, und das hier gefunden:
http://sourceforge.net/projects/assimp/ ... ic/4666308
Und das funktioniert für mich. Da andere scheinbar das selbe Problem mit VC 10 haben, sollte man das in irgendeiner Weise fixen. Keine Ahnung, ob die pstdint generell Probleme mit VC hat, oder assimp da irgendetwas komisch macht, aber ich schlage einfach mal folgende Änderung im CMakeSkript vor:
code/CMakeLists.txt ab ca. Zeile 730
Interessant ist nur der erste BLock, den Rest hab ich nur gepostet, damit ihr wisst, wo ich es eingeordnet habe (bei den defines, ist ja auch nur ein bedingtes define). Die Lösung hat zumindest für mich funktioniert und hat den Vorteil, dass man die Projektdateien nach dem generieren nicht mehr ändern muss. Was das eventuelle neugenerieren nach Änderungen vereinfacht. Und auch wenn ein solcher Hack eventuell etwas unsauber ist, ist es dneke ich dennoch besser, als gar keine Lösung. Vielleicht muss man es bei VC10 ja auch einfach immer definieren, dann könnte man es in den untersten BLock packen und nicht mehr bedingt machen, aber solange man sich nciht sicher ist, was genau den Fehler verursacht, ist es mit der Option meiner Meinung nach besser.OPTION( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
if( VC10_STDINT_FIX )
ADD_DEFINITIONS( -D_STDINT )
endif( VC10_STDINT_FIX )
ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
if ( MSVC80 OR MSVC90 OR MSVC10 )
ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
endif ( MSVC80 OR MSVC90 OR MSVC10 )
Und wo wir gerade dabei sind: Wieso boost 1.35? Die hab ich nicht. Ich hab also die top-level CMakeLists.txt auch abgeändert:
Versionen bis 1.46 sind in meiner Standard findboost.cmake schon drin.ELSE ( ENABLE_BOOST_WORKAROUND )
SET( Boost_DETAILED_FAILURE_MSG ON )
SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" )
FIND_PACKAGE( Boost )
Nach den zwei Anpassungen schnurrt der Build durch. Weiter bin ich noch nicht, aber ich denke, es wird auch so laufen.