在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!
在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!
在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!
在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!
好了,重要的事情说了四遍。。。。。。下面是本文中所用到的所有软件的下载链接,然后是合集包下载地址。
VS2017
QT 5.14.2
OSG 3.6.4 源码
OSG 3.6.4 对应的第三方库
可选的OSG 3.6.4的数据包
CMAKE(点击直接下载)
合集包下载
VS 2017 最好用专业版,因为笔者VS 2017用的专业版,不知道社区版会不会出问题,所以建议读者安装VS 2017专业版。
VS 2017 专业版的安装过程再此不再赘述,只是这里需要提醒一点:
安装完VS 2017之后, 在win10的 控制面板-程序-卸载 中找到 Windows 10 Software Development Kits, 右键点击选择更改, 在弹出的界面中选择更改,然后点选 debugger tools。
这一步是为了后面QT 在选择编译器的时候能自动检测出MSVC 2017编译器。
QT的安装没啥好说的,只在选择安装内容的时候,把所有的东西都勾选上,这肯定没错。
CMAKE的安装就更没有什么好说的了,一路下一步就行。安装完了会在桌面创建一个cmake的快捷方式,以后用的时候直接打开这个快捷方式就行。
这一步最难,很多人就是在这一步出问题,所以一定要小心,严格按本教程来!!!
这一步最难,很多人就是在这一步出问题,所以一定要小心,严格按本教程来!!!
这一步最难,很多人就是在这一步出问题,所以一定要小心,严格按本教程来!!!
要想在QT 里使用OSG,首先就是要编译OSG源码,使用不同的编译器生成的LIB库不一定具有通用性。QT里通过导入编译OSG源码生成的 lib 库来使用OSG,因此编译器的选择十分重要。
QT 里常用的编译器无非就那几个,如:MSVC 2015, MSVC 2017,MinGW等。MinGW编译OSG笔者也尝试过,但由于各种各样的原因而无法使用。因此最后选择MSVC 2017。
编译过程分为如下几步:
OSG源码及第三方库下载之后解压
如图中所示,笔者在D盘创建了一个OSG文件夹,里面有OSG源码压缩包和第三方库压缩包。解压之后也放在该目录下。
接着打开OSG源码文件夹,该目录下有一个CMakeLists.txt文件。打开该文件,添加如下代码段:
set(DESIRED_QT_VERSION "5" CACHE STRING "")
set(CMAKE_PREFIX_PATH "D:/Qt/5.14.2/msvc2017_64" CACHE PATH "")
笔者的CMakeLists.txt文件如下:
添加这两行代码之后,打开CMake软件。软件打开截图如下:
将OSG源码文件夹下的CMakeLists.txt直接拖到Cmake软件里,结果如下图:
修改生成VS项目文件的文件夹,笔者这里如下图:
CMake中这两个文件夹设置好了之后点击configure按钮,会弹出选择编译器的窗口,如下图:
这两项一定要选对!!!!!!!!!!, 然后点击finish,会出现如下界面:
上述都设置好了再点Configure,界面上还是会出现很多红的,如下:
这些红的不用管,继续点Configure,这些红的就消失了,接着按下图操作:
Configure点击之后没有红色的选项,此时点击Generate按钮。会出现如下图的样子:
这一步结束之后,回到OSG文件夹,查看你选择生成VS项目文件的文件夹。笔者这里是OSGSourceCode_BUILD_2ND。如下图:
在这个文件中,双击OpenSceneGraph.sln打开,这时候会打开我们安装好的VS 2017。在VS 2017中会出现如下界面:
这就是整个VS项目。然后最慢的一步到了。
如下图所示一步步操作:
这一步结束之后这个教程也就快结束了。
打开QT, 新建项目,选择编译器时,请选择MSVC 2017 64位。
然后导入需要的lib库,输入如下测试代码:
#include
#include
#include
using namespace osg;
using namespace osgViewer;
using namespace osgDB;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
ref_ptr<Viewer> viewer = new Viewer;
viewer->setSceneData(readNodeFile("D:/OSG/OSGData/cow.osg"));
return viewer->run();
}
代码中的readNodeFile中的路径改成你自己的数据的路径。
运行之后出现如下界面就说明安装成功:
OSG的编译过程很复杂,读者在根据本教程来编译OSG的时候一定要细心。
但哪怕再细心也可能出现一些不明觉厉的错误,导致编译失败。这时候别慌,慢慢来。实在解决不了,加我QQ:805930931。(加了我也不一定能解决。-.-)
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???
如果本教程帮你解决了问题,点一波关注可还行???