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

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

C#如何优雅地取消进程的执行之Cancellation详解

《C#如何优雅地取消进程的执行之Cancellation详解》本文介绍了.NET框架中的取消协作模型,包括CancellationToken的使用、取消请求的发送和接收、以及如何处理取消事件... 目录概述与取消线程相关的类型代码举例操作取消vs对象取消监听并响应取消请求轮询监听通过回调注册进行监听使用Wa

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin