CMake创建VTK程序

如何在VS2013中创建VTK程序

a、直接创建

  利用CMake中CMAKE_INSTALL_PREFIX选项所指定的目录里的文件(头文件、库文件等)直接用VS2013创建。需要进行下面设置
Project->***Properties…->C/C++->General->Additional Include Directories
Project->***Properties…->Linker->Input->Additional Dependencies
Project->***Properties…->Linker->General->Additional Libary Directories

b、使用CMake创建

  1. 在某文件夹下,建立CMakeLists.txt和*.cxx编写代码文件
  2. 打开CMake.exe,将步骤1)的文件夹作为源目录,再自己设置一个输出文件夹。点击Configure按钮,直至无红色。然后点击Generate按钮。
  3. 在编译输出文件下,运行*.sln。

什么是CMake

  CMake其实就是一个跨平台的工程构建工具,可以根据不同的平台生成与平台相关的工程配置文件,比如Windows平台采用Visual Studio,则可以生成.dsw/.sln等项目文件。利用CMake可以管理大型的项目,VTK就是使用了CMake作为项目管理工具。同时CMake也简化了工程构建过程,只要给工程里的每个目录都写一个CMakeLists.txt(注意大小写),就可以生成出该工程的编译文件。
   CMake支持in-place构建(也就是生成的二进制文件跟源文件在同一个目录)和out-of-place构建(编译链接生成的二进制文件和源文件分别在不同的目录,前面我们讲VTK编译过程时就是采用这种构建方式)两种工程构建方式。

CMake的常用命令

为了便于描述,把vtk.sln中Cone项目的CMakeLists.txt脚本代码显示出来,如下图所示。

这里写图片描述

需要掌握了几个CMake命令分是:

● CMAKE_MINIMUM_REQUIRED:用于指定构建工程所需的CMake版本要求。上图中”FATAL_ERROR”为内置的关键字。如果构建工程所用的CMake版本没有达到要求,配置过程中就会出现错误提示信息对话框,终止工程构建过程。
● PROJECT:用于指定工程名字。
● FIND_PACKEAGE:用于搜索并加载外部工程。
● INCLUDE:用于载入一个文件或模块。
● ADD_EXECUTEABLE:定义这个工程会生成一个文件为的可执行文件。
● TARGET_LINK_LIBRARIES:用于指定生成可执行文件时需要链接哪些文件。

CMake使用“${变量}”形式来获取变量的值。比如
PROJECT命令的完整语法格式为:

PROJECT(projectName[CXX][C][Java])

PROJECT命令的第一个参数同样也隐含了一个变量:PROJECT_NAME,可以通过“${PROJECT_NAME}”这种方式来引用变量的值。

常见问题

1、Cannot open include file:无法打开头文件?

a) 将头文件复制到项目目录下。
b)把包含头文件的目录放到工程属性里面

2、unresolved external symbol:无法解析的外部命令?

a)添加对应的.lib到工程属性里。
b)把对应的lib文件加到工程目录下

3、找到不*.dll 文件

a)、将该文件复制到工程目录下。
b)、放到C:\Windows\System32下。
c)、放到环境变量中Path里任何一个目录。

如何根据类名找到对应的lib?

例如vtkRenderWindow和vtkSmartPointer这两个类,查找这两个类的头文件所在路径,分别为..\VTK-5.6-src\Rendering 和..\VTK-5.6-src\Common。可以猜到:因为VTK的所有类都是以“vtk”开头,所以VTK生成的函数库也应该以“vtk”开头。刚好在VTK编译的目录里能找到vtkRender.lib和vtkCommon.lib这两个文件。所以可以断定类vtkRenderWindow 和vtkSmartPointer的接口就是分别定义在vtkRender.lib和vtkCommon.lib中。

备注:

vtk-5.6.1-win32-x86.exe: 在Windows下安装完后生成vtk.exe。可以用来运行后缀为.tcl的Tcl脚本程序。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值