背景:

  最近在做数字孪生仿真,需要用Open Inventor来实现。open inventor可以看做是openGL的包装,它是面向对象的,更适合快速开发。coin3d是open inventor的实现之一,sowin则是其在win平台的接口对接,soqt与qt进行对接。

  以前的coin3d是直接exe安装包(已经编译好的)进行安装的,但是现在官网只提供源码,就需要自己编译了。

  网上最常见的安装方法:

    1. 官网下载源码,cmake进行编译,但是我coin能编译,编译到soqt就不行了。

    2. 去下载别人编译好的包,链接在最后面。

  然后我很好奇为什么一定要用soqt?直接sowin不行吗,还要链接qt和vs ,感觉很麻烦。

解决:

  最后我的解决居然是下载之前的coin2d的老版本,可以直接安装的那版。没想到还是可以用的,在vs 2019下。

 

   这个就是一直点下一步就可以了。

  安装完记得在环境变量中进行配置,添加一个系统变量COINDIR,值为c:\Coin,然后在Path中可以加一项,c:Coin\bin

  建立一个vs 2019的窗口程序,输入以下测试程序:

// Project1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <Inventor/Win/SoWin.h>
#include <Inventor/Win/viewers/SoWinExaminerViewer.h>
#include <Inventor/nodes/SoSeparator.h>
#include <Inventor/nodes/SoCone.h>

int main(int, char** argv)
{

    HWND window = SoWin::init(argv[0]);
        if (window == NULL) exit(1);

    SoWinExaminerViewer* viewer = new SoWinExaminerViewer(window);
    SoSeparator* root = new SoSeparator;
    SoCone* cone = new SoCone;

    root->ref();
    root->addChild(cone);
    viewer->setSceneGraph(root);
    viewer->show();

    SoWin::show(window);
    SoWin::mainLoop();
    delete viewer;
    root->unref();
    return 0;
}

  然后配置项目,链接库文件。右击项目->属性,配置VC++ 目录->包含文件,把coin安装的位置的include添加进来。

  链接器->常规->附加库目录,把coin安装的lib文件路径添加进来

  链接器->常规->输入->附加依赖项,把coin/lib下的lib文件添加进来,比如:coin2d.lib,sowin1d.lib

 

 

  这个时候运行,遇到一个报错:由于找不到msvcrtd.dll无法继续执行代码是什么原因。

  去网上下载msvcrtd.dll,安装在C:\Windows\System32 和 C:\Windows\SysWOW64下。有需要的朋友可以联系我。

  然后看一下结果:

 

  呜呜呜,整了两天,终于出来了,不知道后面用起来怎么样。本人水平有限,欢迎大家一起讨论指教。

参考:

  coin3d官网:

  https://www.coin3d.org/

  编译好的coin3d,sowin等:

  https://bitbucket.org/%7B33c4279a-271f-4864-88ce-03ec8eb2cafc%7D/

  安装参考:

  https://blog.csdn.net/NINGJINGD/article/details/122617453

  https://blog.csdn.net/jiaolu295/article/details/116610751?spm=1001.2014.3001.5502

  https://www.freesion.com/article/1477875649/

原文地址:http://www.cnblogs.com/chenzibai/p/16811237.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性