cmake中的宏(macro)和函数(function)都支持动态参数

变量ARGC记录传入的参数个数

变量ARGV0,ARGV1,...顺序代表传入的参数

变量ARGV则是一个包含所有传入参数的list

变量ARGN也是一个包含传入参数的list,但不是所有参数,而是指macro/function声明的参数之后的所有传入参数

写一个小程序就可以验证:

# 定义一个宏,显式声明了两个参数hello,world
macro(argn_test hello world)
MESSAGE(STATUS ARGV=${ARGV})
MESSAGE(STATUS ARGN=${ARGN})
MESSAGE(STATUS ARGV0=${ARGV0})
MESSAGE(STATUS ARGV1=${ARGV1})
MESSAGE(STATUS ARGV2=${ARGV2})
MESSAGE(STATUS ARGV3=${ARGV3})
endmacro()
# 调用宏时传入4个参数
argn_test(TOM JERRY SUSAN BERN)

cmake脚本执行输出结果,ARGN为声明参数之后的所有参数

-- ARGV=TOMJERRYSUSANBERN
-- ARGN=SUSANBERN
-- ARGV0=TOM
-- ARGV1=JERRY
-- ARGV2=SUSAN
-- ARGV3=BERN

转载于:https://blog.csdn.net/10km/article/details/83027824

最新文章

  1. C++小项目:directx11图形程序(一):主框架
  2. 基于vue的新组件开发
  3. delphi中VirtualStringTree树使用方法之终结篇!
  4. IOS网络请求原理
  5. 管理批量邮箱 FOXMAIL 和网易闪电邮(PC端)有什么区别? 对比
  6. [转]Redis集群的配置
  7. “IPSec 共享密钥”丢失。
  8. sqlserver2012的审计功能的相关理解
  9. core_cm3.c解析
  10. 记一次解析XML转对象的笔记
  11. scrapy初试水 day03(递归调用)
  12. MySQL数据库入门(建库和建表)--陈远波
  13. mr实现pagerank
  14. Pandas数据去重和对重复数据分类、求和,得到未重复和重复(求和后)的数据
  15. 【python】廖雪峰python教程学习--基础
  16. C和C指针小记(十六)-动态内存分配
  17. 归并排序(C++实现)
  18. hive SQL 字母大小写转换
  19. npm 用 淘宝代理
  20. 连接redis

热门文章

  1. 聊聊Cookie、Session、Token 背后的故事
  2. python之路33 MySQL 1
  3. U3D编辑器开发&粒子特效/动画预览器示例
  4. 图书管理系统BMS
  5. Stream流中的常用方法_skip-Stream流中的常用方法_concat
  6. JAVA虚拟机21---JAVA内存模型
  7. freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况
  8. 工控领域上云实践-Zstack和软赢
  9. OWASP 靶机下载
  10. JZOJ 3992.Christmas