CMake入门——CMakeLists.txt执行

2024-08-21 19:48

本文主要是介绍CMake入门——CMakeLists.txt执行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CMakeLists.txt执行,有两种方法。第一种使用cmake-gui.exe,可视化界面,简单易懂。第二种使用*.bat脚本,批量传参,高效快速。

准备:新建目录E:\vtk_Exercise,在该目录下新建3个文件,分别是CMakeLists.txt,RenderCylinder.h,RenderCylinder.cpp,RunCmakeX64.bat

第一种使用步骤

step1:编写CMakeLists.txt,示例如下

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
SET(VTK_DIR E:/Thirdparty/x64/VTK)project(RenderCylinder)INCLUDE_DIRECTORIES(${VTK_DIR}/include/vtk-6.0
)
LINK_DIRECTORIES(${VTK_DIR}/lib/${ConfigurationName}
)
add_executable(${PROJECT_NAME} RenderCylinder.cpp RenderCylinder.h)target_link_libraries(${PROJECT_NAME}vtkFiltersGeometry-6.0vtkIOGeometry-6.0vtkIOCore-6.0vtkCommonCore-6.0vtkInteractionStyle-6.0vtkRenderingOpenGL-6.0vtkCommonDataModel-6.0vtkfilterscore-6.0vtkRenderingCore-6.0vtkCommonExecutionModel-6.0vtkFiltersSources-6.0
)

step2:打开cmake-gui.exe,如下图。

1是选择最外层的CMakeLists.txt所在目录(本例中只有一层),点击Browse Source浏览目录,

2是设置生成的工程目录,可任意设置,为方便管理,设置成E:\vtk_Exercise\bin

点击3后,选择编译环境,本人是Visual Studio 11 win64,然后单击Finish,配置完成

点击4后,生成工程(该步骤即执行CMakeLists.txt

第二种使用步骤

step1:编写脚本RunCmakeX64.bat,示例如下

set rootdir=%cd%
mkdir "Build\x64"
cd "Build\x64"
"CMake.exe" -G "Visual Studio 11 Win64"  -D QT_DIR:PATH="c:\Qt\Qt5.1.1\5.1.1\msvc2012_64\lib\cmake"  -D VTK_DIR_ROOT:PATH="%rootdir%\Temp\x64\VTK"    TEMPLATE_RC_FILE:PATH="%rootdir%\TemplateFile\Template.rc"  %rootdir%
if errorlevel 1 pause
cd.. 
cd..

step2:编写CMakeLists.txt,示例如下。命令SET(VTK_DIR "${VTK_DIR_ROOT}"),建立了CMakeLists.txt和RunCmakeX64.bat的联系,即RunCmakeX64.bat传参数给CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
SET(VTK_DIR "${VTK_DIR_ROOT}")project(RenderCylinder)INCLUDE_DIRECTORIES(${VTK_DIR}/include/vtk-6.0
)
LINK_DIRECTORIES(${VTK_DIR}/lib/${ConfigurationName}
)
add_executable(${PROJECT_NAME} RenderCylinder.cpp RenderCylinder.h)target_link_libraries(${PROJECT_NAME}vtkFiltersGeometry-6.0vtkIOGeometry-6.0vtkIOCore-6.0vtkCommonCore-6.0vtkInteractionStyle-6.0vtkRenderingOpenGL-6.0vtkCommonDataModel-6.0vtkfilterscore-6.0vtkRenderingCore-6.0vtkCommonExecutionModel-6.0vtkFiltersSources-6.0
)

step3:双击RunCmakeX64.bat即可。如果报错权限不够,右键管理员权限

这篇关于CMake入门——CMakeLists.txt执行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094116

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2