解决方案:Coin3D安装编译以及配合VS2019、QT的使用
前言
最近项目上需要机器人仿真界面的实现,查阅相关资料后准备入坑Coin3D。但是在安装时就遇到的大麻烦,现有的一些博文都是在VS2010或者2013或者2015的环境下配置的,那会只需要在Coin3D的官网下载必要的库解压下来,配置一下环境,就可以用了。但是现在官方网址移到了Github,之前的方法也早已不适用,所以,特在此记录一下作者最新的编译过程以及遇到的一些坑。(可能有的小伙伴已经要开会了,我下载别人编译好的不一样可以用,一天天净整这些花里胡哨的)。确实,如果大家图省事的话,可以直接下载别人编译好的Coin3D去使用,就不需要看后面的内容了,我也会上传我编译好的Coin3D供大家使用。但是这里就要说一句了,有句老话说得好,授人以鱼不如授人以渔,我还是稍稍的记录一下哈哈。 ——2021/5/17
Coin3D简介
目前世界上比较成熟的Open Inventor(以下简称OIV)开发包有三个,它们分别由SGI( http://www.sgi.com),TGS( http://www.tgs.com)和SIM( http://www.coin3d.org)公司开发的。SGI是最早提出并开发OIV的公司。但SGI的OIV主要用在UNIX操作系统下,没有提供对Microsoft Windows操作系统的支持。TGS公司是最早将OIV由Unix系统移植到Microsoft Windows下的公司。TGS的OIV是目前世界上使用最多的OIV版本。但TGS的OIV是一个商业软件开发包,其购买开发版权的费用非常昂贵,不适合普通用户学习和使用。SIM公司开发的Coin3D OIV可以同时在UNIX和Microsoft Windows下使用。这是一个开放源码的OIV开发包,使用协议采用的是GPL协议。非常适合希望学习使用OIV的普通用户。详情查看Open Inventor 简介
下图是Coin3D官网中的架构图
下表列出了Coin3D所包含的组件及其主要用途。其中绿色的部分为必装组件,黄色的部分需要根据不同的平台来选用,青色的部分为可选组件。对于Windows平台而言,必选的组件为Coin、SoWin、Soqt、Quarter。Simage和Simvoleon可根据实际需要进行选择。
本文将主要介绍Coin3D OIV开发包在Microsoft Windows操作系统下,Visual Studio2019开发环境中的安装与使用。
环境
Windows10 x64系统下使用VS2019与QT5.15.2,VS中qt插件使用最新的2.7.1
VS2019与QT的配置参考VS2019+Qt
Coin3D编译
按照Coin3D在Github上官方库的安装说明,执行如下步骤:
1、Cmake安装
版本:cmake3.20.2
用来编译coin3d源代码,参考Windows下的CMake下载与安装,在cmake官网下载图形界面安装文件直接装即可。
2、Git安装
主要用来下载GitHub上面的coin3d源代码进行之后的编译操作,不装git直接在GitHub下载源码压缩包应该也是可以的,只是不知道下载下来的版本一致不一致。我这里由于一直在用Git的缘故,直接按照官网的步骤来做了。
git安装参考这里
3、Boost安装
版本:1.76
参考此博文
4、Doxygen安装
版本:1.9.1
Doxygen用来自动生成说明与操作文件,编译coin3d时默认是要生成相关文件的,所以需要Doxygen。
如果选择不生成这些说明文件,也可以不安装。
Doxygen安装就是普通软件的安装了,进去官网下载安装包,一步步点击下一步即可。
5、编译Coin
首先要确定在你的系统上有哪些编译器被cmake支持。在命令行使用 cmake --help
可以查看。我这里结果如下,标 *
的是当前的编译器,因为我这里的环境是VS2019,所以要用Visual Studio 16 2019
。
如果这里你的选项不是VS2019,需要使用命令cmake -G
来显示指定。如果不指定,cmake会选择默认编译器来进行编译。
GeneratorsThe following generators are available on this platform (* marks default):- Visual Studio 16 2019 = Generates Visual Studio 2019 project files.Use -A option to specify architecture.Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.Optional [arch] can be "Win64" or "ARM".Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.Optional [arch] can be "Win64" or "ARM".Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.Optional [arch] can be "Win64" or "ARM".Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.Optional [arch] can be "Win64" or "ARM".Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.Optional [arch] can be "Win64" or "IA64".Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.Optional [arch] can be "Win64" or "IA64".Borland Makefiles = Generates Borland makefiles.NMake Makefiles = Generates NMake makefiles.NMake Makefiles JOM = Generates JOM makefiles.MSYS Makefiles = Generates MSYS makefiles.MinGW Makefiles = Generates a make file for use withmingw32-make.Green Hills MULTI = Generates Green Hills MULTI files(experimental, work-in-progress).Unix Makefiles = Generates standard UNIX makefiles.Ninja = Generates build.ninja files.Ninja Multi-Config = Generates build-<Config>.ninja files.Watcom WMake = Generates Watcom WMake makefiles.CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.CodeBlocks - NMake Makefiles JOM= Generates CodeBlocks project files.CodeBlocks - Ninja = Generates CodeBlocks project files.CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.CodeLite - MinGW Makefiles = Generates CodeLite project files.CodeLite - NMake Makefiles = Generates CodeLite project files.CodeLite - Ninja = Generates CodeLite project files.CodeLite - Unix Makefiles = Generates CodeLite project files.Eclipse CDT4 - NMake Makefiles= Generates Eclipse CDT 4.0 project files.Eclipse CDT4 - MinGW Makefiles= Generates Eclipse CDT 4.0 project files.Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.Kate - MinGW Makefiles = Generates Kate project files.Kate - NMake Makefiles = Generates Kate project files.Kate - Ninja = Generates Kate project files.Kate - Unix Makefiles = Generates Kate project files.Sublime Text 2 - MinGW Makefiles= Generates Sublime Text 2 project files.Sublime Text 2 - NMake Makefiles= Generates Sublime Text 2 project files.Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.Sublime Text 2 - Unix Makefiles= Generates Sublime Text 2 project files.
下载源码(默认下载到用户目录下):
git clone --recurse-submodules https://github.com/coin3d/coin coin
配置编译选项:
cmake -Scoin -Bcoin_build -DCMAKE_INSTALL_PREFIX=C:\Coin3D -DBOOST_ROOT=C:\Data\Boost-1.56.0 -DCOIN_BUILD_DOCUMENTATION=OFF
如果cmake版本低于3.13,将选项
-S
改为-H
-S
指源码路径,这里就是下载下来的coin库的文件夹名
-B指编译路径,coin_build就是编译文件所在的文件夹名。如果不存在此文件夹则自动创建(不需要自己新建文件夹)
-DCMAKE_INSTALL_PREFIX
是你的Coin3D相关库的安装目录,可以提前建好Coin3D文件夹,路径中不要包含中文
-DBOOST_ROOT
是你之前安装的boost的安装目录,这里要做修改,改成你自己的boost的安装目录
-DCOIN_BUILD_DOCUMENTATION=OFF
指是否生成编译相关的html文件和帮助文档。官网说默认OFF,和上面的Doxygen的用法介绍那边不知道是不是一个东西,没有深究。这里可以选 OFF,因为生成的文档在Documentation 都可以找到编译Coin库
cmake --build coin_build --target ALL_BUILD --config Release -- /nologo /verbosity:minimal /maxcpucount
如果编译Debug版本,只需将Release 改为Debug
安装Coin库
cmake --build coin_build --target INSTALL --config Release -- /nologo /verbosity:minimal /maxcpucount
如果编译Debug版本,只需将Release 改为Debug
6、编译Soqt
步骤与coin类似
下载源码(默认下载到用户目录下):
git clone --recurse-submodules https://github.com/coin3d/soqt soqt
配置编译选项:
cmake -Ssoqt -Bsoqt_build -A x64 -DCMAKE_INSTALL_PREFIX=C:\Coin3D -DCMAKE_PREFIX_PATH="C:\Coin3D;C:\Qt\5.15.2\msvc2019_64" -DBOOST_ROOT=C:\Data\Boost-1.56.0 -DSOQT_BUILD_DOCUMENTATION=OFF
选项解释参考Coin
编译Soqt库
cmake --build soqt_build --target ALL_BUILD --config Release -- /nologo /verbosity:minimal /maxcpucount
如果编译Debug版本,只需将Release 改为Debug
安装Soqt库
cmake --build soqt_build --target INSTALL --config Release -- /nologo /verbosity:minimal /maxcpucount
如果编译Debug版本,只需将Release 改为Debug
7、编译Quarter
参考Soqt,只需要将相关命令中的soqt改成quarter,SOQT改为QUARTER
8、编译Sowin
参考Soqt,只需要将相关命令中的soqt改成sowin,SOQT改为SOWIN
Sowin库下载问题:下载时遇到无法下载的问题,改用下面的命令行可解决
git clone --recurse-submodules https://github.com/coin3d/sowin.git
9、编译Simage
编译时遇到BUG,由于暂时用不到此库,暂时搁置
10、编译simvoleon
编译时遇到BUG,由于暂时用不到此库,暂时搁置
至此,Coin3D库编译完成,配置一下就可以使用。目录结构如下图所示:
试运行
首先,需要电脑上已经安装VS2019, QT和VS下的QT扩展Qt VS Tool,这里不详细说明。新建项目时选择widget项目,然后就是VS 2019 下的配置了。
需要设置include、lib、和input。
(1)c/c+±->General–>Additional Include Directories, 添加目录“****\Coin3D\include”
(2)Linker–>General --> Additional Library Directories, 添加目录 “******\Coin3D\lib”
(3)Linker -->Input–>Additional Dependencies, 添加目录*.lib文件名,如Coin4d.lib;Quarter1d.lib;SoQt1d.lib;SoWin1d.lib等
main.cpp添加代码如下:
#include <QtWidgets/QApplication>
#include <Inventor/Qt/SoQt.h>
#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
#include <Inventor/nodes/SoSeparator.h>
#include <Inventor/nodes/SoCube.h>int main(int argc, char *argv[])
{QWidget* mainwin = SoQt::init(argc, argv, argv[0]);SoSeparator* root = new SoSeparator();root->ref();SoCube* cube = new SoCube();root->addChild(cube);SoQtExaminerViewer* eviwer = new SoQtExaminerViewer(mainwin);eviwer->setSceneGraph(root);eviwer->show();SoQt::show(mainwin);SoQt::mainLoop();root->unref();delete eviwer;return 0;
}
不出意外会出现错误提示:
需要设置SOQT_DLL的预处理。方法是在C/C++ -> Preprocessor -> Preprocessor Definitions
, 添加SOQT_DLL
运行结果如下:
试运行BUG汇总
Bug0
需要设置SOQT_DLL的预处理。
解决方法:在C/C++ -> Preprocessor -> Preprocessor Definitions
, 添加SOQT_DLL
Bug1
当前项目编译环境不是Debug
解决方法:修改下图的Release为Debug
Bug2
没有添加dll文件路径
解决方法:
1、只要在电脑的用户变量或者系统变量的path里面把相关dll的路径加上就行了
2、也可以把Coin3D目录下的bin文件夹下dll文件复制到当前工程目录
参考:
配置COIN3D的DLL路径
VS项目中引入dll的方法
Bug3
没有添加附加依赖项,导致链接出错。
解决方法:Linker -->Input–>Additional Dependencies, 添加目录*.lib文件名,如Coin4d.lib;Quarter1d.lib;SoQt1d.lib;SoWin1d.lib等
参考资料
Open Inventor 简介
Open Inventor学习资源
基于VS2019+QT的Coin3D三维可视化库的安装预测测试
参考书籍
The Inventor Mentor-关于这本书
TODO
在GitHub上传相关资源(源码、编译后Coin3D、书籍等资料)
解决方案:Coin3D安装编译以及配合VS2019、QT的使用相关推荐
- Coin3d环境搭建(VS2019+QT),实现基于Open Inventor机器人图形交互
先下载VS2019下载 Visual Studio Tools - 免费安装 Windows.Mac.Linux (microsoft.com) 这里点下载然后界面拖到最下点击较早的下载项 下载这个2 ...
- Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!
注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...
- [CGAL] CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)
文章目录 0.前言 1.安装Boost 1.1 下载 2.2 设置环境变量 2.安装CGAL和GMP and MPFR libraries 2.1 下载 2.2 配置环境变量 3.其他可选依赖项 3. ...
- VS2019 Qt开发环境搭建与配置
目录 更新说明 学习Qt.安装Qt环境的困扰 问题1:该选什么操作系统,该用MinGW还是msvc ? 问题2:如果用visual studio该安装哪个qt版本? 问题3:Qt开发商业软件需要付费授 ...
- 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)
一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...
- Qt安装—图文并茂搭建VS2008/2010+QT开发环境
VS2008: (一)工欲善其事,必先利其器,废话不多讲. 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚: 1,首先明确需要下载什么版本的QT.网上流行的安装说明只 ...
- PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程
摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的 ...
- linux FreeImage安装编译
原文:http://www.cnblogs.com/oloroso/p/5777959.html FreeImage编译及遇到问题解决 1.下载freeImage源码包 wget http://dow ...
- 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)
本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...
- Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe
Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...
最新文章
- 自贡市职称计算机考试,四川省自贡市2012年职称计算机考试时间
- 大数据系统软件国家工程研究中心给大家拜年啦!
- Oracle-多表连接的三种方式解读
- 重磅!全网最全13010本SCI2020最新影响因子下载!CA+四大神刊!预警期刊最新影响因子一览!
- 优化Image设置Tiled类型产生过多的三角形顶点
- boost::mp11::mp_remove相关用法的测试程序
- [POI2015]CZA
- hadoop 单节点安装
- asp.net面试的概念知识
- SQL查找是否“存在“,别再count了!
- 一起了解和成为“敏捷个人”(为参加5.29活动预热)
- VUE父组件与子组件的数据传递
- 一、瞰景Smart3D软件介绍
- 【cs231】损失函数与优化
- 问道手游服务器修改,分享一下自己架设问道手游经验和教程【图文篇】
- 一个3D引擎Demo 源码
- pandas绘图plot函数
- android应用程序隐私设置在哪,手机权限设置在哪里_手机设置应用软件权限的具体步骤...
- OpenGL配置glut64位和glut32位,英伟达 安全 下载地址 免费
- 移动端车牌识别:新能源车牌识别上线
热门文章
- Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
- Java开发实战经典【Java基础】
- 商城系统功能多不是运营的关键,但是功能多,真香!
- 学习廖雪峰 Git 总结
- 台式计算机颜色如何矫正,台式机怎么颜色校正操作教程
- 四.川.木.里-2020-03-28火灾遥感数据下载汇总
- 啊哈算法——Java实现
- 2021年MathorCup高校数学建模挑战赛——大数据竞赛赛道A -思路分享
- 7.2.5 dps 测试软件,7.2.5冰DK萨墓六大DPS饰品测试:属性机制及分析
- 【第68期】智能时代下的计算机系统能力培养