Hi,
I have compile OSG with OSG_USE_FLOAT_BOUNDINGBOX and
OSG_USE_FLOAT_BOUNDINGSPHERE to OFF. Then, when I try to
compile VPB, it hangs on :
3>DataSet.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float & __thiscall
osg::BoundingBox::yMax(void)" ([EMAIL PROTECTED]@osg@@QAEAAMXZ)
referenced in function "public: bool __thiscall vpb::DataSet::addModel(enum
vpb::Source::Type,class osg::Node *)" ([EMAIL PROTECTED]@vpb@
@[EMAIL PROTECTED]@[EMAIL PROTECTED]@osg@@@Z)
3>DataSet.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float & __thiscall
osg::BoundingBox::yMin(void)" ([EMAIL PROTECTED]@osg@@QAEAAMXZ)
referenced in function "public: bool __thiscall vpb::DataSet::addModel(enum
vpb::Source::Type,class osg::Node *)" ([EMAIL PROTECTED]@vpb@
@[EMAIL PROTECTED]@[EMAIL PROTECTED]@osg@@@Z)
3>DataSet.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float & __thiscall
osg::BoundingBox::xMax(void)" ([EMAIL PROTECTED]@osg@@QAEAAMXZ)
referenced in function "public: bool __thiscall vpb::DataSet::addModel(enum
vpb::Source::Type,class osg::Node *)" ([EMAIL PROTECTED]@vpb@
@[EMAIL PROTECTED]@[EMAIL PROTECTED]@osg@@@Z)
3>DataSet.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float & __thiscall
osg::BoundingBox::xMin(void)" ([EMAIL PROTECTED]@osg@@QAEAAMXZ)
referenced in function "public: bool __thiscall vpb::DataSet::addModel(enum
vpb::Source::Type,class osg::Node *)" ([EMAIL PROTECTED]@vpb@
@[EMAIL PROTECTED]@[EMAIL PROTECTED]@osg@@@Z)
3>Destination.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float __thiscall
osg::BoundingBox::radius(void)const " ([EMAIL PROTECTED]@osg@@QBEMXZ)
referenced in function "public: class osg::Node * __thiscall
vpb::DestinationTile::createHeightField(void)"
([EMAIL PROTECTED]@vpb@@[EMAIL PROTECTED]@@XZ)
3>ShapeFilePlacer.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float __thiscall
osg::BoundingBox::yMax(void)const " ([EMAIL PROTECTED]@osg@@QBEMXZ)
referenced in function "public: virtual void __thiscall
ShapeFileOverlapingHeightFieldPlacer::apply(class osg::Geode &)"
([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z)
3>ShapeFilePlacer.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float __thiscall
osg::BoundingBox::xMax(void)const " ([EMAIL PROTECTED]@osg@@QBEMXZ)
referenced in function "public: virtual void __thiscall
ShapeFileOverlapingHeightFieldPlacer::apply(class osg::Geode &)"
([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z)
3>ShapeFilePlacer.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float __thiscall
osg::BoundingBox::yMin(void)const " ([EMAIL PROTECTED]@osg@@QBEMXZ)
referenced in function "public: virtual void __thiscall
ShapeFileOverlapingHeightFieldPlacer::apply(class osg::Geode &)"
([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z)
3>ShapeFilePlacer.obj : error LNK2019: unresolved external symbol
"__declspec(dllimport) public: float __thiscall
osg::BoundingBox::xMin(void)const " ([EMAIL PROTECTED]@osg@@QBEMXZ)
referenced in function "public: virtual void __thiscall
ShapeFileOverlapingHeightFieldPlacer::apply(class osg::Geode &)"
([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z)
So, I have added the same two options as OSG in Cmake for VPB :
OPTION(OSG_USE_FLOAT_BOUNDINGSPHERE "Set to ON to build VirtualPlanetBuilder
with float BoundingSphere instead of double." ON)
MARK_AS_ADVANCED(OSG_USE_FLOAT_BOUNDINGSPHERE)
IF(NOT OSG_USE_FLOAT_BOUNDINGSPHERE)
ADD_DEFINITIONS(-DOSG_USE_DOUBLE_BOUNDINGSPHERE)
ENDIF(NOT OSG_USE_FLOAT_BOUNDINGSPHERE)
OPTION(OSG_USE_FLOAT_BOUNDINGBOX "Set to ON to build VirtualPlanetBuilder
with float BoundingBox instead of double." ON)
MARK_AS_ADVANCED(OSG_USE_FLOAT_BOUNDINGBOX)
IF(NOT OSG_USE_FLOAT_BOUNDINGBOX)
ADD_DEFINITIONS(-DOSG_USE_DOUBLE_BOUNDINGBOX)
ENDIF(NOT OSG_USE_FLOAT_BOUNDINGBOX)
With these two options, It build fine. Maybe we could do a better thing,
like checking if OSG was build with OSG_USE_FLOAT_BOUNDINGBOX or not, and
set the same thing for VPB. But I don't know enough CMake to do that !
Here is the modify CMakeLists.txt for VPB.
Regards.
--
Christophe Loustaunau.
OPTION(OSG_USE_FLOAT_BOUNDINGSPHERE "Set to ON to build VirtualPlanetBuilder
with float BoundingSphere instead of double." ON)
MARK_AS_ADVANCED(OSG_USE_FLOAT_BOUNDINGSPHERE)
IF(NOT OSG_USE_FLOAT_BOUNDINGSPHERE)
ADD_DEFINITIONS(-DOSG_USE_DOUBLE_BOUNDINGSPHERE)
ENDIF(NOT OSG_USE_FLOAT_BOUNDINGSPHERE)
OPTION(OSG_USE_FLOAT_BOUNDINGBOX "Set to ON to build VirtualPlanetBuilder with
float BoundingBox instead of double." ON)
MARK_AS_ADVANCED(OSG_USE_FLOAT_BOUNDINGBOX)
IF(NOT OSG_USE_FLOAT_BOUNDINGBOX)
ADD_DEFINITIONS(-DOSG_USE_DOUBLE_BOUNDINGBOX)
ENDIF(NOT OSG_USE_FLOAT_BOUNDINGBOX)
IF (DYNAMIC_VIRTUALPLANETBUILDER)
ADD_DEFINITIONS(-DVPB_LIBRARY)
ELSE (DYNAMIC_VIRTUALPLANETBUILDER)
ADD_DEFINITIONS(-DVPB_LIBRARY_STATIC)
ENDIF(DYNAMIC_VIRTUALPLANETBUILDER)
SET(LIB_NAME vpb)
SET(HEADER_PATH ${VIRTUALPLANETBUILDER_SOURCE_DIR}/include/${LIB_NAME})
SET(LIB_PUBLIC_HEADERS
${HEADER_PATH}/BlockOperation
${HEADER_PATH}/BuildLog
${HEADER_PATH}/BuildOperation
${HEADER_PATH}/BuildOptions
${HEADER_PATH}/Commandline
${HEADER_PATH}/DatabaseBuilder
${HEADER_PATH}/DataSet
${HEADER_PATH}/Date
${HEADER_PATH}/Destination
${HEADER_PATH}/Export
${HEADER_PATH}/ExtrudeVisitor
${HEADER_PATH}/FileCache
${HEADER_PATH}/FileDetails
${HEADER_PATH}/FileUtils
${HEADER_PATH}/GeospatialDataset
${HEADER_PATH}/HeightFieldMapper
${HEADER_PATH}/MachinePool
${HEADER_PATH}/ObjectPlacer
${HEADER_PATH}/PropertyFile
${HEADER_PATH}/Serializer
${HEADER_PATH}/ShapeFilePlacer
${HEADER_PATH}/Source
${HEADER_PATH}/SourceData
${HEADER_PATH}/SpatialProperties
${HEADER_PATH}/System
${HEADER_PATH}/Task
${HEADER_PATH}/TaskManager
${HEADER_PATH}/ThreadPool
${HEADER_PATH}/Version
)
ADD_LIBRARY(${LIB_NAME}
${VIRTUALPLANETBUILDER_USER_DEFINED_DYNAMIC_OR_STATIC}
${LIB_PUBLIC_HEADERS}
BuildLog.cpp
BuildOperation.cpp
BuildOptions.cpp
BuildOptionsIO.cpp
Commandline.cpp
DatabaseBuilder.cpp
DatabaseBuilderIO.cpp
DataSet.cpp
Date.cpp
Destination.cpp
ExtrudeVisitor.cpp
FileCache.cpp
FileDetails.cpp
FileUtils.cpp
GeospatialDataset.cpp
HeightFieldMapper.cpp
MachinePool.cpp
ObjectPlacer.cpp
PropertyFile.cpp
ShapeFilePlacer.cpp
Source.cpp
SourceData.cpp
SpatialProperties.cpp
System.cpp
Task.cpp
TaskManager.cpp
ThreadPool.cpp
Version.cpp
)
INCLUDE_DIRECTORIES( ${GDAL_INCLUDE_DIR} ${OSG_INCLUDE_DIR} )
IF (WIN32)
LINK_EXTERNAL(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIBRARY}
${GDAL_LIBRARY} Ws2_32.lib)
ELSE(WIN32)
LINK_EXTERNAL(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIBRARY}
${GDAL_LIBRARY})
ENDIF(WIN32)
LINK_WITH_VARIABLES(${LIB_NAME} OSG_LIBRARY OSGUTIL_LIBRARY OSGSIM_LIBRARY
OSGTERRAIN_LIBRARY OSGDB_LIBRARY OSGFX_LIBRARY OSGVIEWER_LIBRARY
OSGTEXT_LIBRARY OSGGA_LIBRARY OPENTHREADS_LIBRARY)
LINK_CORELIB_DEFAULT(${LIB_NAME} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIBRARY} )
INCLUDE(ModuleInstall OPTIONAL)
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org