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)
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. –