CMakeList之macro
一、定义
1、可以把它理解为C++的宏,命令如下
macro(<name> [<arg1> ...])
<commands>
endmacro()
定义一个名为
message("命名参数是必须的,如果未提供将触发error。参数名称之间不需要逗号")
macro(addr csdn github)
message("csdn addr:${csdn}")
message("github addr:${github}")
endmacro()
addr("https://blog.csdn.net" "https:://github.com")
2、可选参数(optional arguments):可以使用一些预定义的变量访问可选参数,示例代码段如下:
- ARGC:参数总数(命名参数+可选参数)。
- ARGV:包含命名参数和可选参数的变量列表。
- ARGN:仅包含可选参数的变量列表。
message("可以使用一些预定义的变量访问可选参数:ARGC,ARGV,ARGN")
macro(name_list name1 name2)
message("argument cout:${ARGC}")
message("all arguments:${ARGV}")
message("optional argument:${ARGN}")
endmacro
name_list(Jack Kate Jony Tom)
///argument cout:4
///all arguments:JackKateJonyTom
///optional argument:JonyTom
name_list(Jack Kate)
///argument cout:4=2
///all arguments:JackKate
///optional argument:
参考:
https://cmake.org/cmake/help/v3.22/command/macro.html
https://blog.csdn.net/fengbingchun/article/details/127145153
https://www.csdn.net/tags/MtjacgwsMTA5OTEtYmxvZwO0O0OO0O0O.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通