当前位置: 首页 > news >正文

003: Visual Studio 配置 VTK 开发环境的方法与比较

目录

简介:

1 配置属性方法:

2 创建配置文件

3 在新项目中导入props文件 

总结:


简介:

       编译好VTK后,在安装目录里面有通常有包含bin,lib和include等文件夹,要在自己的项目里面使用VTK,主要就是需要再自己的VS项目里面进行正确的配置,使VS能够找到需要的文件(include文件夹内),lib文件,如果编译使用的是动态链接,在项目通过编译链接生成可执行文件后,在把可执行文件需要的dll,从bin文件夹内拷贝的可执行文件所在的文件夹即可。

      在自己的项目配置VTK的方法主要有两种:

  1.  配置属性方法:通过项目属性进行设置,添加头文件路径,lib文件路径和需要的lib文件;
  2.  创建配置文件:将VTK安装目录通过VS创建成props文件,需要时直接添加props到需要的项目之中即可;

两种方法的比较,第一种方法灵活一些,可以感觉自己项目的需要来增加或去除对应的lib文件,但如果有很多项目都要配置VTK的开发环境时,就不如第二种方法简单方便;第二种方法引入props文件非常的简单便捷,建议新手使用,但如果VTK安装目录变更后,就需要重新修改props文件。

刚开始学习VTK的话,还是建议使用第二种方法,也就是创建props方法。

1 配置属性方法:

该方法的介绍比较多,主要步骤就是右键单击项目名称,点击属性,打开属性设置页面,在C/C++ 常规中 附加包含目录中添加vtk头文件路径;

 在链接器  常规 里面的 附件库目录中添加Lib文件所在路径。

在链接器 输入 附件依赖性中添加所有的Lib文件即可。 

 这里需要特别注意,在使用批处理命令列出所有lib时,不可以放在C盘运行,否则没有输出,最好是将VTK的lib文件所在文件夹拷贝到其它盘符,然后创建bat文件,双击运行,就可以创建LIBLIST.txt文件,打开该文件直接拷贝里面的内容到  上面的附加依赖项 即可。

2 创建配置文件

   该方法只需要创建一次props文件,后面需要的项目直接导入props文件即可;

   首先要新建立一个C++ 控制台应用,例如我们建立项目VTK_Study项目;

上图为VS2017创建,与VS2022略有不同

项目建立好后,在VS顶部菜单项中,依次单击 视图 =>属性管理器,打开属性管理器窗口。

根据自己的项目设置,比如这里vtk_Study项目是 Debug下的X64,因此在属性管理器中,也选择Debug|x64, 右键单击,选择 添加新项目属性表,打开项目属性表添加对话框。 

在添加新项对话框中输入名称,为了以后其它项目使用该文件时,能够方便区分因此命名为vtkX64Debug,也就是和项目属性对应起来。 

建好后,会发现在Debug|x64下多出了vtkX64Debug.props文件,双击该文件,或右键点击属性,打开设置属性页。

接下来就和通过属性设置VTK一样了,在c/c++ 常规的,附加包含目录中添加vtk头文件路径 

在链接器  常规 里面的 附件库目录中添加Lib文件所在路径。

 在链接器 输入 附件依赖性中添加所有的Lib文件即可。

特别注意:完成后右键单击 vtkX64Debug,进行保存,如下图:

打开vtk_Study项目所在文件夹, 会发现里面多了一个vtkX64Debug.props文件,将该文件拷贝VTK的安装目录中,新的项目需要配置VTK时,直接导入该文件即可。

也可以用记事本打开该文件,打开后发现其就是本质就是一个xml文件,里面保存VTK配置相关的信息,如下图:

3 在新项目中导入props文件 

在原项目中新增加一个Win32 控制台程序,打开该项目的属性管理器,可以通过视图--属性管理器来打开;也可以直接再项目下面单击属性管理器页面

在打开的文件选择对话框中,选择刚才拷贝到VTK安装目录的  vtkX64Debug.props  导入即可,导入完成后,就可以直接开始使用VTK了,不需要再去属性对话框中设置路径,添加Lib文件了,方便快捷。

总结:

          介绍了两种再项目中配置VTK的方法,其实严格来说就是一种方法,不过相比较而言,第二种方法导出props文件后,后面所有要使用VTK的项目,直接通过属性框导入props文件即可,不用在去费劲添加路径和lib文件,想比较而言,更加的方便快捷。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt工程实践_06_Qt MSVC2O17编译器下的程序添加VS2017生成的动态链接库方法
  • Windows用户取消共享文件夹密码方法(Method for Windows Users to Cancel Shared Folder Password)
  • 科研绘图系列:R语言柱状图分布(histogram plot)
  • Mybatis【分页插件,缓存,一级缓存,二级缓存,常见缓存面试题】
  • 重头开始嵌入式第三十四天(数据库二)
  • html备忘录
  • IDEA 2024最新软件下载
  • 【全网最全】2024年数学建模国赛C题超详细保奖思路+可视化图表+成品论文+matlab/python代码等(后续会更新
  • Elastic Stack--ELFK实例与Dashboard界面
  • docker实战基础四(如何在容器中调试和排查运行问题)
  • 基于PyTorch分布式训练的实现与优化(以CIFAR-10为例)
  • 如何搭建RGBD GS-ICP SLAM环境以及如何与自己编的pcl并存
  • 如何在JSON对象中查询特定的值?C语言实现
  • Linux 命令行/bash脚本 批量创建文件
  • Python基础语法(17多线程线程锁单例模式)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • es6--symbol
  • JavaScript异步流程控制的前世今生
  • Java基本数据类型之Number
  • jQuery(一)
  • MQ框架的比较
  • ReactNative开发常用的三方模块
  • 编写符合Python风格的对象
  • 从setTimeout-setInterval看JS线程
  • 深度学习入门:10门免费线上课程推荐
  • 十年未变!安全,谁之责?(下)
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一道闭包题引发的思考
  • # C++之functional库用法整理
  • #知识分享#笔记#学习方法
  • %@ page import=%的用法
  • %check_box% in rails :coditions={:has_many , :through}
  • (~_~)
  • (a /b)*c的值
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (离散数学)逻辑连接词
  • (四)模仿学习-完成后台管理页面查询
  • (五)关系数据库标准语言SQL
  • (一)基于IDEA的JAVA基础12
  • (转)项目管理杂谈-我所期望的新人
  • .a文件和.so文件
  • .NET 8.0 发布到 IIS
  • .Net CF下精确的计时器
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 发展历程
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET文档生成工具ADB使用图文教程
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • :class的用法及应用
  • @SpringBootApplication 包含的三个注解及其含义
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限