首页 > 其他分享 >CMake构建学习笔记10-OsgQt库的构建

CMake构建学习笔记10-OsgQt库的构建

时间:2024-08-28 22:48:15浏览次数:10  
标签:10 OsgQt Force lib -- Destination 构建 Path InstallDir

笔者使用的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类型的构建安装还是有点问题,因此还是采用自定义脚本的方式进行安装。

标签:10,OsgQt,Force,lib,--,Destination,构建,Path,InstallDir
From: https://www.cnblogs.com/charlee44/p/18385657

相关文章

  • P10786 [NOI2024] 百万富翁
    思路:先考虑Sub1的部分分,暴力算法:暴力询问所有\(i<j\)的数对\((i,j)\)。则一个\(i\)为最大值当且仅当\((i,j)\)的返回值都是\(i\)且在\(i\)之前没有满足此条件的位置。则设\(\operatorname{F}(n)=\frac{n(n-1)}{2}\)表示暴力找出\(n\)个数中的最大值需要......
  • 电脑长截图滚动截图FastStone Capture v10.7专业授权绿色版
    FastStoneCapture是一款集屏幕捕捉、编辑、导出和屏幕录像为一体的轻量级、多功能截图录屏软件。软件的特色功能是支持电脑长截图滚动截图。它以其简洁高效的操作界面和强大的功能赢得了全球用户的青睐。FastStoneCapture自2000年推出以来,经历了多次更新迭代,每一次升级都是对......
  • Python编码系列—Python中的HTTPS与加密技术:构建安全的网络通信
    ......
  • 力扣热题100_贪心算法_45_跳跃游戏
    文章目录题目链接解题思路解题代码题目链接45.跳跃游戏II给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i]......
  • P10789 [NOI2024] 登山
    思路:我们可以对于每个\(i\)找到它能跳到的最远的点和最近的点,倍增求一下\(k\)级祖先即可,令\([l_i,r_i]\)新表示\(i\)能跳到其祖先中深度在\([l_i,r_i]\)内的点;同时令\(lim_i=d_i-h_i-1\)表示\(i\)至少要跳到\(lim_i\)的深度。考虑动态规划算法,令\(dp_i\)......
  • 5步构建高效二手电子产品回收平台——Python Django Vue技术解析
    ......
  • YOLOv10改进:CBAM注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,在目标检测中有
    YOLOv10改进:CBAM注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,在目标检测中有效涨点)如果实验环境尚未搭建成功,可以参考这篇文章->【YOLOv10详细环境搭建以及模型训练(GPU版本)】请参考链接:http://t.csdnimg.cn/YQ9qW------------------------------------------------......
  • 监控电脑的软件叫什么?不可错过的10款电脑监控软件推荐
    电脑监控软件成为了企业管理、家庭监护以及个人安全防护的重要工具。它们不仅能帮助企业提高员工工作效率、保护数据安全,还能为家庭用户提供孩子上网行为的监督。以下是不可错过的10款电脑监控软件推荐,每款都有其独特的功能和适用场景。1.安企神软件该软件是一款专业的电......
  • 南沙信息学家教陈老师: 1349:【例4-10】最优布线问题
    ​【题目描述】学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们......
  • QL5010-16-ASEMI逆变焊机专用整流桥QL5010
    编辑:llQL5010-16-ASEMI逆变焊机专用整流桥QL5010型号:QL5010品牌:ASEMI封装:KBPC-4批号:2024+类型:整流模块电流:50A电压:1600V安装方式:直插式封装特性:大功率、整流桥产品引线数量:4产品内部芯片个数:4产品内部芯片尺寸:MIL工作结温:-40℃~150℃功率:50W包装方式:500/盒:3000/箱......