首页 > 系统相关 >windows--cmake与c++的使用教程(6)

windows--cmake与c++的使用教程(6)

时间:2022-11-15 23:46:27浏览次数:81  
标签:CURRENT CMAKE windows c++ PROJECT cmake message DIR

1 概述

本节目标: 了解CMAKE内置的一些变量 以及对应的值

2 CMake内置变量

  • 前面的文章中已经出现了CMAKE_CURRENT_SOURCE_DIR,当时没有说明,现在补上,CMAKE_CURRENT_SOURCE_DIR就是当前CMakeLists.txt文件所在路径。
  • 使用方法,内置变量使用, 需要用${}结合使用,比如:${CMAKE_CURRENT_SOURCE_DIR},
  • 配合message,可以查看CMake内置的一些变量的值,脚本如下
cmake_minimum_required(VERSION 3.18)

project(show_vars VERSION 1.0.1)

# 为了分行确定输出内容
message("")

message("1.PROJECT_BINARY_DIR = ${PROJECT_BINARY_DIR}")
message("2.PROJECT_SOURCE _DIR = ${_DIR}")
message("3.CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")
message("4.CMAKE_CURRRENT_BINARY_DIR = ${CMAKE_CURRRENT_BINARY_DIR}")
message("5.CMAKE_CURRENT_LIST_FILE = ${CMAKE_CURRENT_LIST_FILE}")
message("6.CMAKE_CURRENT_LIST_LINE = ${CMAKE_CURRENT_LIST_LINE}")
message("7.CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
message("8.CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
message("9.EXECUTABLE_OUTPUT_PATH = ${EXECUTABLE_OUTPUT_PATH}")
message("10.LIBRARY_OUTPUT_PATH = ${LIBRARY_OUTPUT_PATH}")
message("11.PROJECT_NAME = ${PROJECT_NAME}")
message("12.PROJECT_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR}")
message("13.PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}")
message("14.PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}")
message("15.CMAKE_SYSTEM = ${CMAKE_SYSTEM}")
message("16.CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
message("17.CMAKE_SYSTEM_VERSION = ${CMAKE_SYSTEM_VERSION}")
message("18.BUILD_SHARED_LIBS = ${BUILD_SHARED_LIBS}")
message("19.CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")
message("20.CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
message("21.CMAKE_SYSTEM_PROCESSOR   = ${CMAKE_SYSTEM_PROCESSOR}")
# 为了分行确定输出内容
message("")

3 结果

  • 笔者机器执行脚本结果
[cmake] -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621.
[cmake] 
[cmake] 1.PROJECT_BINARY_DIR = C:/A/build
[cmake] 2.PROJECT_SOURCE _DIR = 
[cmake] 3.CMAKE_CURRENT_SOURCE_DIR = C:/A
[cmake] -- Configuring done
[cmake] 4.CMAKE_CURRRENT_BINARY_DIR = 
[cmake] 5.CMAKE_CURRENT_LIST_FILE = C:/A/CMakeLists.txt
[cmake] 6.CMAKE_CURRENT_LIST_LINE = 13
[cmake] 7.CMAKE_MODULE_PATH = 
[cmake] 8.CMAKE_SOURCE_DIR = C:/A
[cmake] 9.EXECUTABLE_OUTPUT_PATH = 
[cmake] 10.LIBRARY_OUTPUT_PATH = 
[cmake] 11.PROJECT_NAME = show_vars
[cmake] 12.PROJECT_VERSION_MAJOR = 1
[cmake] 13.PROJECT_VERSION_MINOR = 0
[cmake] 14.PROJECT_VERSION_PATCH = 1
[cmake] 15.CMAKE_SYSTEM = Windows-10.0.22621
[cmake] 16.CMAKE_SYSTEM_NAME = Windows
[cmake] 17.CMAKE_SYSTEM_VERSION = 10.0.22621
[cmake] 18.BUILD_SHARED_LIBS = 
[cmake] 19.CMAKE_C_FLAGS = /DWIN32 /D_WINDOWS
[cmake] 20.CMAKE_CXX_FLAGS = /DWIN32 /D_WINDOWS /EHsc
[cmake] 21.CMAKE_SYSTEM_PROCESSOR   = AMD64
[cmake] 
[cmake] -- Generating done

5 关于

  • CMake内置的变量的值可以手动修改,并非一成不变。可根据自己项目需要,将其设置为自己需要的值。

6 关注

  • 需要重点关注的变量有CMAKE_CURRENT_SOURCE_DIRCMAKE_CURRENT_LIST_FILE
  • CMAKE_CURRENT_LIST_FILE后期自己写一些常用的脚本会用到该变量
  • CMAKE_CURRENT_SOURCE_DIR用的最多,因为它与CMakeLists.txt脚本文件相关。

标签:CURRENT,CMAKE,windows,c++,PROJECT,cmake,message,DIR
From: https://www.cnblogs.com/pandamohist/p/16894469.html

相关文章

  • C++ 内存分区模型
    代码区:存放函数的二进制代码,由操作系统管理全局区:存放全局变量、静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若......
  • c++匿名表达式
    C++11Lambda表达式 C++11中的匿名函数(lambda函数,lambda表达式)https://gitlab.com/yzzy/modern-cpp/-/blob/main/c16_lambda/main.cpp[](intx,inty){return......
  • windows--cmake与c++的使用教程(5)
    1概述本文基于前文环境本节目标:关于cmake脚本错误处理及cmake脚本执行流程2错误提示当脚本语法出错时,cmake会输出错误位于哪个文件、第几行、以及错误原因。......
  • C++设备管理系统
    C++设备管理系统53.设备管理系统功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称......
  • C++20高级编程 第五版 电子书 pdf
    作者:[比]马克·格雷戈勒(MarcGregoire)出版社:清华大学出版社原作名:ProfessionalC++,FifthEdition 链接:C++20高级编程第五版  拥抱C++的深度和复杂性,挖掘......
  • Visual Studio C++ 默认 UTF-8 编码及 *.editorconfig 统一代码格式
    ​转载请注明原文链接:https://www.cnblogs.com/mechanicoder/p/16894144.html1.问题由来背景:团队使用VisualStudio进行跨平台项目开发。遇到的问题:编码:Windows......
  • 嵌入式-Linux基础:Windows和Linux间的文件传输方式
    首先必须安装VMWare里面的VmWareTool(1)拖拽方式:安装完之后就可以通过拖拽的方式将Windows的文件移到虚拟机里了,同样虚拟机里的也可以拖拽到Windows中。(2)设置共享文件夹......
  • C++动态链接MySQL库
    C++链接MySQL库库安装目录CMakeListcmake_minimum_required(VERSION3.22)project(MySQLConnectionPool)include_directories(/usr/include/mysql) #安装库路径s......
  • MySQL in Windows安装以及异名恢复的简单过程
    下载相关建议获取最新版本的Mysql数据库可以获取zip格式的安装文件https://dev.mysql.com/downloads/mysql/或者获取msi格式的安装文件https://dev.mysql.com/dow......
  • windows--cmake与c++的使用教程(4)
    1概述本文基于前文环境本节目标:编写创建可执行程序exe的cmake脚本2核心代码add_executable命令用于生成可执行程序3用法add_executable(项目名代码文件)......