博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用cmake生成利用VTK库类的visual studio 2010 MFC工程
阅读量:5874 次
发布时间:2019-06-19

本文共 2415 字,大约阅读时间需要 8 分钟。

hot3.png

最近在学习利用VTK三维编程,但是发现,在国内,相关的知识真的很少,在学习的过程中,遇到了很大的困难,所以就想着把我学到的一些有用的知识写出来,供以后的学习的人参考,我也是一个新手,有不到之处,希望读者不吝赐教。这就是我写这些的动机。以下的所有的所用的环境的操作系统是windows xp sp3.

一,cmake简介:

cmake 即是cmake - Cross-Platform Makefile Generator.是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),能够输出各种各样的makefile或者project文件。

用cmake生成工程的时候主要的依据是CMakeLists.txt文件,其是一种脚本文件,有很简单的语法,cmake就是根据该文件的相关指示生成相应的工程的。

二,用cmake生成visual studio 2010 MFC工程的步骤和方法

1,首先用visual studio 2010新建一个MFC工程,可以是基于对话框的或者是基于文档的。

2,将生成的工程的目录下的<工程名>.sln和<工程名>.sdf 删除,PS:不删除也没有什么问题的,我建立的是工程的名字是VtkMFC,多文档的。

3,编辑CMakeLists.txt 文件,就是一个文本文件。

#cmake版本的最低要求

cmake_minimum_required(VERSION 2.8)

#生成工程的名字

PROJECT(VtkMFC)

#查找TVK的安装路径

FIND_PACKAGE(VTK)
IF(NOT VTK_DIR)
MESSAGE(FATAL_ERROR "Please set VTK_DIR.")
ENDIF(NOT VTK_DIR)
INCLUDE(${VTK_USE_FILE})

INCLUDE("${VTK_DIR}/GUISupport/MFC/VTKMFCSettings.cmake")

IF(VTK_MFC_DELAYLOAD_VTK_DLLS)
VTK_MFC_ADD_DELAYLOAD_FLAGS(CMAKE_EXE_LINKER_FLAGS
vtkMFC.dll
vtkRendering.dll
vtkIO.dll
vtkFiltering.dll
vtkCommon.dll
)
ENDIF(VTK_MFC_DELAYLOAD_VTK_DLLS)

#设置工程的源代码的变量,就是刚才生成的全部的MFC工程的全部的源文件

SET( VtkMFC_SRCS

ClassView.h
ClassView.cpp
FileView.h
FileView.cpp
MainFrm.h
MainFrm.cpp
OutputWnd.h
OutputWnd.cpp
Readme.txt
Resource.h
stdafx.h
stdafx.cpp
targetver.h
ViewTree.cpp
ViewTree.h
VtkMFC.h
VtkMFC.cpp
VtkMFC.rc
VtkMFCDoc.h
VtkMFCDoc.cpp
VtkMFCView.h
VtkMFCView.cpp
PropertiesWnd.cpp
PropertiesWnd.h
)
ADD_EXECUTABLE(VtkMFC WIN32 ${VtkMFC_SRCS})
IF(VTK_MFC_EXTRA_LIBS)
TARGET_LINK_LIBRARIES(VtkMFC ${VTK_MFC_EXTRA_LIBS})
ENDIF(VTK_MFC_EXTRA_LIBS)
TARGET_LINK_LIBRARIES(VtkMFC vtkMFC vtkRendering vtkIO vtkFiltering vtkCommon)

4,将CMakeLists.txt文件放在 …\VtkMFC\VtkMFC下,并建立文件夹bin,用来放置将来生成的工程文件。

5,用cmake生成工程

(1)运行cmake-gui,设置where is the source code为放置CMakeLists.txt文件的文件目录下,设置where to build the binaries为刚才建立的文件夹bin

(2)点击configure,设置Specify the generator for this project 为visual studio 2010,然后finished

(3)等到在下面的状态栏上显示configured,再点击generate,待到下面的状态栏上显示generated,此时你的VtkMFC工程已经生成了。

(4)打开生成的MFC工程,直接编译,你就可以看到就和原来直接用visual studio 2010 直接生成的一样的一个空白的视图。

(5)在代码中你就可以使用VTK相关的库类了

其实CMakeLists.txt还有其他的写法,就是在每个文件的下面就写一个CMakeLists.txt文件,这时候在第一个CMakeLists.txt中要用子文件夹的指令。

PS:还有就是我想解释下,为什么我们要用cmake来生成project,而不是直接配置,要知道任何的工程都是可以白手起家的。这是因为VTK的库类很多,仅仅靠人工是不容易搭建起来的,再就是即使搭建起来也要很多的时间。把宝贵的时间都浪费在毫无意义的事情上是不明智的选择。

PS:再就是我学习cmake的一点感悟,用cmake生成project就是将所有的源文件都一个不拉的加入将要生成工程的源文件变量中,cmake知道怎么使用这些文件,不用你自己操心,节省了我们很多的时间,为我们带来了很大的方便。

转载于:https://my.oschina.net/zhangwenwen/blog/88444

你可能感兴趣的文章
深入浅出JVM
查看>>
【NIPS2017现场+数据也疯狂】最佳论文大奖公布,算法关注度超越深度学习排第一...
查看>>
MyBatis实现SaveOrUpdate
查看>>
WPF动态加载3D&nbsp;放大-旋转-平移
查看>>
Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
查看>>
[20170324]dg相关进程.txt
查看>>
DataTable 更改在有数据列的类型方法
查看>>
nginx做本地目录映射
查看>>
用 Maven 运行 MyBatis Generator(Running MyBatis Generator With Maven)
查看>>
Apache Hadoop 3.0.0-alpha1主要改进
查看>>
大型项目开发: 头文件顺序
查看>>
中小型商业银行的软件安全测试之道
查看>>
Flink运行时之TaskManager执行Task
查看>>
6、如何自学Struts2之Struts2值栈和OGNL语言[视频]
查看>>
听说网易用户信息泄露了?
查看>>
elk之elasticsearch 入门
查看>>
C++11 thread
查看>>
《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.39. GDBM-1.11...
查看>>
云:虚拟之上的管理平台
查看>>
决策统计---指标六要素
查看>>