编译条件:cmake 3.22 、vs2019 、osgQt源码、编译完成osg3.6.4、Qt5
源码下载:https://github.com/openscenegraph
一、cmake-gui设置
参数v140 ,设置vs工程使用平台工具集“Visual Studio 2015 (v140)”,如果没有需要不指定空即可。
二、 修改osgQt源码中CMakeLists.txt,添加下图选中部分:
(1)add_definitions(-std=c++11) 添加C++11 如果不指定,可能qt会报关于C++11的问题(比如线程相关新结构)。
(2)set(CMAKE_PREFIX_PATH "D:/Qt/Qt5.12.10/5.12.10/msvc2017_64" CACHE PATH "") 指定自己机器上qt的安装路径。
qt也可以这样指定:
set(Qt5_DIR "D:/SofltwareInstalling/Qt/Qt5.12.10/5.12.10/msvc2017_64/lib/cmake/Qt5" CACHE PATH "")
如果找不到qt路径会报错:
By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5" with any of
the following names:
Qt5Config.cmake
qt5-config.cmake
Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
to a directory containing one of the above files. If "Qt5" provides a
separate development package or SDK, be sure it has been installed.
(3)指定需要的osg 库:
set(OSG_DIR "D:/libraries/osg-3.6.4")
FIND_PACKAGE(OpenSceneGraph 3.6.4 REQUIRED osg osgDB osgGA osgUtil osgText osgViewer osgWidget)
SET(OPENSCENEGRAPH_SOVERSION 160)
在osg库安装路径“include/osg/Version”文件下可以查看OpenSceneGraph 、OPENSCENEGRAPH_SOVERSION 版本号。
其实osg的搜索module都在cmake的安装路径“\CMake\share\cmake-3.22\Modules”下的FindOpenSceneGraph.cmake。
三、 cmake最终显示
主义如果是手动指定osg路径,注意OSG_INCLUDE_DIR路径的位置。
其实,在qt中使用osg(osg嵌入qt窗口),直接将osgQt源码中的两个类 class osgQOpenGLWidget 、class OSGRenderer改写即可,参考osgQt例子中的osgviewerQt.cpp。