利用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
CMake其实就是一个跨平台的工程构建工具,可以根据不同的平台生成与平台相关的工程配置文件,比如Windows平台采用Visual Studio,则可以生成.dsw/.sln等项目文件。利用CMake可以管理大型的项目,VTK就是使用了CMake作为项目管理工具。同时CMake也简化了工程构建过程,只要给工程里的每个目录都写一个CMakeLists.txt(注意大小写),就可以生成出该工程的编译文件。
CMake支持in-place构建(也就是生成的二进制文件跟源文件在同一个目录)和out-of-place构建(编译链接生成的二进制文件和源文件分别在不同的目录,前面我们讲VTK编译过程时就是采用这种构建方式)两种工程构建方式。
为了便于描述,把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}”这种方式来引用变量的值。
a) 将头文件复制到项目目录下。
b)把包含头文件的目录放到工程属性里面
a)添加对应的.lib到工程属性里。
b)把对应的lib文件加到工程目录下
a)、将该文件复制到工程目录下。
b)、放到C:\Windows\System32下。
c)、放到环境变量中Path里任何一个目录。
例如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脚本程序。