笔者利用的OsgQt库是Github上openscenegraph仓库中托管的项目(地址),该库的功能是将Osg嵌入到Qt窗体中。不过该库的利用总是有点标题,具体的先容笔者在之前的两篇博文中论述过:
OSG嵌入QT的简明总结
OSG嵌入QT的简明总结2
因此,这里笔者还是将这个库分成了两个版本进行构建。构建topic/Qt4分支的关键代码如下所示:- #配置CMake
- cmake .. -G "$Generator" -A x64 `
- -DCMAKE_BUILD_TYPE=RelWithDebInfo `
- -DCMAKE_PREFIX_PATH="$InstallDir" `
- -DCMAKE_INSTALL_PREFIX="$InstallDir" `
- -DOPENTHREADS_LIBRARY_RELEASE="$InstallDir/lib/OpenThreads.lib" `
- -DOSG_LIBRARY_RELEASE="$InstallDir/lib/osg.lib" `
- -DOSGDB_LIBRARY_RELEASE="$InstallDir/lib/osgDB.lib" `
- -DOSGGA_LIBRARY_RELEASE="$InstallDir/lib/osgGA.lib" `
- -DOSGUTIL_LIBRARY_RELEASE="$InstallDir/lib/osgUtil.lib" `
- -DOSGTEXT_LIBRARY_RELEASE="$InstallDir/lib/osgText.lib" `
- -DOSGVIEWER_LIBRARY_RELEASE="$InstallDir/lib/osgViewer.lib" `
- -DOSGWIDGET_LIBRARY_RELEASE="$InstallDir/lib/osgWidget.lib" `
- -DCMAKE_RELWITHDEBINFO_POSTFIX=""
- # 构建阶段,指定构建类型
- cmake --build . --config RelWithDebInfo -- /m:8
- # 安装阶段,指定构建类型和安装目标
- #cmake --build . --config RelWithDebInfo --target install
- # 自定义安装
- # 复制include文件夹
- Copy-Item -Path "../include/osgQt" -Destination "$InstallDir/include" -Recurse -Force
- # 复制输出文件
- Copy-Item -Path "./lib/osgQt5.lib" -Destination "$InstallDir/lib" -Force
- Copy-Item -Path "./packaging/pkgconfig/openscenegraph-osgQt5.pc" -Destination "$InstallDir/lib/pkgconfig" -Force
- Copy-Item -Path "./bin/osg145-osgQt5.dll" -Destination "$InstallDir/bin" -Force
- Copy-Item -Path "./bin/osg145-osgQt5.pdb" -Destination "$SymbolDir" -Force
复制代码 topic/Qt4是旧的版本,所以不能自动找到安装好的OSG库,因此需要手动指定OSG_LIBRARY_RELEASE等OSG库文件的路径。另外,这个库对于RelWithDebInfo范例的构建安装有点标题,因此没有利用CMake安装的方式,而是接纳自界说的脚本进行安装。假如是Debug或者Release范例,可以直接利用CMake安装的方式。
最新的主分支构建的关键指令如下所示:- #配置CMake
- cmake .. -G "$Generator" -A x64 `
- -DCMAKE_BUILD_TYPE=RelWithDebInfo `
- -DCMAKE_PREFIX_PATH="$InstallDir" `
- -DCMAKE_INSTALL_PREFIX="$InstallDir" `
- -DCMAKE_RELWITHDEBINFO_POSTFIX="" `
- -DBUILD_OSG_EXAMPLES=OFF
- # 构建阶段,指定构建类型
- cmake --build . --config RelWithDebInfo -- /m:8
- # 安装阶段,指定构建类型和安装目标
- #cmake --build . --config RelWithDebInfo --target install
- # 自定义安装
- # 复制include文件夹
- Copy-Item -Path "../include/osgQOpenGL" -Destination "$InstallDir/include" -Recurse -Force
- # # 复制输出文件
- Copy-Item -Path "./lib/osgQOpenGL.lib" -Destination "$InstallDir/lib" -Force
- Copy-Item -Path "./packaging/pkgconfig/openscenegraph-osgQt.pc" -Destination "$InstallDir/lib/pkgconfig" -Force
- Copy-Item -Path "./bin/osg145-osgQOpenGL.dll" -Destination "$InstallDir/bin" -Force
- Copy-Item -Path "./bin/osg145-osgQOpenGL.pdb" -Destination "$SymbolDir" -Force
复制代码 新版本对OSG库的查找没有标题。不过RelWithDebInfo范例的构建安装还是有点标题,因此还是接纳自界说脚本的方式进行安装。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |