2016-04-29 6 views
0

Ich habe OpenSceneGraph 3.4.0 unter Linux (32-Bit) kompiliert OFF OFF DYNAMIC_OPENSCENEGRAPH und DYNAMIC_OPENTHREADS Flags und Aktivierung von Anwendungen und Beispielen auf CMake.OSGconv unter Linux statisch mit Unterstützung für Obj-Dateien kompilieren

Build war erfolgreich und ich habe statische Bibliotheken und auch das Beispiel osgstaticviewer funktioniert korrekt.

Dann habe ich versucht, osgconv nur mit statischen Bibliotheken mit einem CMakeLists.txt aus osgstaticviewer und modifizierten Hinzufügen von Obj-Unterstützung und osgconv ursprünglichen Quelldateien zu kompilieren. Kompilierung funktioniert und resultierende ausführbare Dateien, aber ich bin nicht in der Lage, eine Obj-Datei in eine OSG-Datei zu konvertieren. Insbesondere versuchen, wenn ich den Befehl:

./osgconv myModel.obj myModel.osg 

ich erhalten die folgende Warnung:

Warning: Could not find plugin to read objects from file "myModel.obj". 
Error no data loaded. 

Was ist das Verfahren für die statisch osg Plugins Verknüpfung?

Unterhalb der CMakeLists.txt verwendet osgconv kompilieren:

#this file is automatically generated 

SET(TARGET_ADDED_LIBRARIES osgdb_obj osgdb_ive osgdb_openflight osgdb_osg osgdb_rgb osgdb_osg) 
SET(TARGET_ADDED_LIBRARIES ${TARGET_ADDED_LIBRARIES} 
    osgdb_deprecated_osg osgdb_deprecated_osgparticle osgdb_deprecated_osganimation 
    osgdb_deprecated_osgfx osgdb_deprecated_osgsim osgdb_deprecated_osgtext 
    osgdb_deprecated_osgviewer osgdb_deprecated_osgshadow osgdb_deprecated_osgterrain 
    osgdb_deprecated_osgvolume osgdb_deprecated_osgwidget 
) 
SET(TARGET_ADDED_LIBRARIES ${TARGET_ADDED_LIBRARIES} 
    osgdb_serializers_osg osgdb_serializers_osgparticle osgdb_serializers_osgtext 
    osgdb_serializers_osgterrain osgdb_serializers_osganimation osgdb_serializers_osgfx 
    osgdb_serializers_osgshadow osgdb_serializers_osgmanipulator osgdb_serializers_osgsim 
    osgdb_serializers_osgvolume 
) 

IF(FREETYPE_FOUND) 
    ADD_DEFINITIONS(-DUSE_FREETYPE) 
    SET(TARGET_ADDED_LIBRARIES ${TARGET_ADDED_LIBRARIES} osgdb_freetype) 
ENDIF(FREETYPE_FOUND) 

SET(TARGET_SRC 
    OrientationConverter.cpp 
    osgconv.cpp 
) 
SET(TARGET_H 
    OrientationConverter.h 
) 

SETUP_APPLICATION(osgconv) 

Antwort

1

Sie die Quelle osgconv ändern müssen, um die USE_OSGPLUGIN Makro hier für verschiedene Plugins gesehen haben Unterstützung Bindung: http://trac.openscenegraph.org/projects/osg//browser/OpenSceneGraph/trunk/examples/osgstaticviewer/osgstaticviewer.cpp#L40

+0

USE_OSGPLUGIN Gelöst Hinzufügen Makros, aber auch die anderen erforderlichen Makros in osgstaticviewer.cpp (USE_DOTOSGWRAPPER_LIBRARY und USE_SERIALIZE_WRAPPER_LIBRARY). Das Hinzufügen von nur USE_OSGPLUGIN gibt mir ein Ergebnis mit 0 Byte. –