ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
https://blog.csdn.net/qq_31811537/article/details/82797051 定义一个可在CMake脚本其他位置调用的函数。 function(\[arg1 \[arg2 \[arg3 ...\]\]\])     COMMAND1(ARGS ...)     COMMAND2(ARGS ...)     ... endfunction() 定义一个函数名为,参数名为arg1 arg2 arg3(…)。 函数体内的命令直到函数被调用的时候才会去执行。其中ARGC变量表示传递给函数的参数个数。 ARGV0, ARGV1, ARGV2代表传递给函数的实际参数。 ARGN代表超出最后一个预期参数的参数列表,例如,函数原型声明时,只接受一个参数,那么调用函数时传递给函数的参数列表中,从第二个参数(如果有的话)开始就会保存到ARGN。 测试实例: ``` cmake_minimum_required(VERSION 2.8) project(ArgumentExpansion) function (argument_tester arg) message(STATUS "ARGN: ${ARGN}") message(STATUS "ARGC: ${ARGC}") message(STATUS "ARGV: ${ARGV}") message(STATUS "ARGV0: ${ARGV0}") list(LENGTH ARGV argv_len) message(STATUS "length of ARGV: ${argv_len}") set(i 0) while( i LESS ${argv_len}) list(GET ARGV ${i} argv_value) message(STATUS "argv${i}: ${argv_value}") math(EXPR i "${i} + 1") endwhile() endfunction () argument_tester(arg0 arg1 arg2 arg3) ``` 运行结果: \-- ARGN: arg1;arg2;arg3 \-- ARGC: 4 \-- ARGV: arg0;arg1;arg2;arg3 \-- ARGV0: arg0 \-- ARGV1: arg1 \-- length of ARGV: 4 \-- argv0: arg0 \-- argv1: arg1 \-- argv2: arg2 \-- argv3: arg3