编译环境:win11 + vs2013 + 64位 + qt5.6.3 + osg3.6.5 + oe2.10.2 + osgqt当前最新版本
编译工具:cmake-3.24.1
第三方库:3rdParty_VS2013.5_v120_x64_V10_full.7z
Qt:下载5.6.3版本直接安装
osgqt下载地址:https://github.com/openscenegraph/osgQt
编译osg:
1. 通过cmake添加CMAKE_PREFIX_PATH中添加第三方库目录;
2. 注释掉第三方库目录中include/zconf.h中第454行的#include<unistd.h>
cmake生成,通过vs2013编译即可.
编译oe:
1. cmake配置OSG_DIR为osg的安装目录;
2. cmake添加CMAKE_PREFIX_PATH中添加第三方库目录;
3. cmake中的GDAL_LIBRARY值修改为gdal_i.lib;
cmake生成,通过vs2013编译即可.
编译osgqt:
1. cmake配置OSG_DIR为osg的安装目录;
2. (解决moc文件没有包含对应的头文件问题)camke配置后,去对应的build目录下.\src\osgQOpenGL\__\__include\osgQOpenGL\目录下修改三个文件如下:
a. 修改moc_osgQOpenGLWidget.cpp_parameters中第10行添加-f<osgQOpenGL/osgQOpenGLWidget>
b. 修改moc_osgQOpenGLWindow.cpp_parameters中第10行添加-f<osgQOpenGL/osgQOpenGLWindow>
c. 修改moc_OSGRenderer.cpp_parameters中第10行添加-f<osgQOpenGL/OSGRenderer>
3. (解决集成到qt界面中被拉宽问题)修改源码src\osgQOpenGL\osgQOpenGLWidget.cpp文件。在此方中的resizeGL函数中最后添加两行代码(此文件的第59行):
if(0 > w || 0 >= h){ return; }
osg::Camera *camera = m_renderer->getCamera();
if(!camera){ return; }
double fovy, ar, zNear, zFar;
if(!camera->getProjectionMatrixAsPerspective(fovy, ar, zNear, zFar)){ return; }
ar = (1.0 * w) / (1.0 * h);
camera->setProjectionMatrixAsPerspective(fovy, ar, zNear, zFar);
camke生成通过vs2013编译即可.
问题:osgQt编译的第二步,谁更好的解决方法,请赐教!