前言

最近项目上需要机器人仿真界面的实现,查阅相关资料后准备入坑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的使用相关推荐

  1. Coin3d环境搭建(VS2019+QT),实现基于Open Inventor机器人图形交互

    先下载VS2019下载 Visual Studio Tools - 免费安装 Windows.Mac.Linux (microsoft.com) 这里点下载然后界面拖到最下点击较早的下载项 下载这个2 ...

  2. Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!

    注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...

  3. [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. ...

  4. VS2019 Qt开发环境搭建与配置

    目录 更新说明 学习Qt.安装Qt环境的困扰 问题1:该选什么操作系统,该用MinGW还是msvc ? 问题2:如果用visual studio该安装哪个qt版本? 问题3:Qt开发商业软件需要付费授 ...

  5. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

    一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...

  6. Qt安装—图文并茂搭建VS2008/2010+QT开发环境

    VS2008: (一)工欲善其事,必先利其器,废话不多讲. 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:      1,首先明确需要下载什么版本的QT.网上流行的安装说明只 ...

  7. PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

    摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的 ...

  8. linux FreeImage安装编译

    原文:http://www.cnblogs.com/oloroso/p/5777959.html FreeImage编译及遇到问题解决 1.下载freeImage源码包 wget http://dow ...

  9. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)

    本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动到qt连接mysql数据库(一.编译连接前准备) [全教程]qt连接mysql--从qt编译mysql驱动到qt连接my ...

  10. Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe

    Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...

最新文章

  1. 自贡市职称计算机考试,四川省自贡市2012年职称计算机考试时间
  2. 大数据系统软件国家工程研究中心给大家拜年啦!
  3. Oracle-多表连接的三种方式解读
  4. 重磅!全网最全13010本SCI2020最新影响因子下载!CA+四大神刊!预警期刊最新影响因子一览!
  5. 优化Image设置Tiled类型产生过多的三角形顶点
  6. boost::mp11::mp_remove相关用法的测试程序
  7. [POI2015]CZA
  8. hadoop 单节点安装
  9. asp.net面试的概念知识
  10. SQL查找是否“存在“,别再count了!
  11. 一起了解和成为“敏捷个人”(为参加5.29活动预热)
  12. VUE父组件与子组件的数据传递
  13. 一、瞰景Smart3D软件介绍
  14. 【cs231】损失函数与优化
  15. 问道手游服务器修改,分享一下自己架设问道手游经验和教程【图文篇】
  16. 一个3D引擎Demo 源码
  17. pandas绘图plot函数
  18. android应用程序隐私设置在哪,手机权限设置在哪里_手机设置应用软件权限的具体步骤...
  19. OpenGL配置glut64位和glut32位,英伟达 安全 下载地址 免费
  20. 移动端车牌识别:新能源车牌识别上线

热门文章

  1. Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
  2. Java开发实战经典【Java基础】
  3. 商城系统功能多不是运营的关键,但是功能多,真香!
  4. 学习廖雪峰 Git 总结
  5. 台式计算机颜色如何矫正,台式机怎么颜色校正操作教程
  6. 四.川.木.里-2020-03-28火灾遥感数据下载汇总
  7. 啊哈算法——Java实现
  8. 2021年MathorCup高校数学建模挑战赛——大数据竞赛赛道A -思路分享
  9. 7.2.5 dps 测试软件,7.2.5冰DK萨墓六大DPS饰品测试:属性机制及分析
  10. 【第68期】智能时代下的计算机系统能力培养