CMake中的循环语句主要包括foreach和while和,以及break跳出循环。 语法示例如下: # foreach循环 set(SRC_FILES foo.cpp bar.cpp main.cpp) foreach(file IN LISTS SRC_FILES) message("Found file: ${file}") endforeach() # while循环 set(i 0) while(i LESS 5) message("i = ${i}") math(EXPR...
两者都可以与break结合使用,以便尽早从循环中跳出。本示例将展示如何使用foreach,来循环源文件列表。示例中将应用这样的循环,在引入新目标的前提下,来为一组源文件进行优化降级: # set minimum cmake version & project name and language cmake_minimum_required(VERSION 3.5 FATAL_ERROR) project(recipe-10 ...
foreach(item${var_list}) message("当前变量是:${item}") endforeach() ## foreach 方式二: set(result0) set(end0) foreach(element RANGE0100) math(EXPR result"${result} + ${element}") if(resultLESS100) continue()## continue endif() if(resultGREATER1000) set(end${element}) break()...
foreach也支持break(),continue()命令操作。 代码语言:javascript 复制 foreach(循环变量 参数1 参数2 ...) # 要执行的命令块 COMMAND1(ARGS ...) COMMAND2(ARGS ...) endforeach(循环变量) 自定义命令(函数) 命令可以带字符串参数,但没有返回值。命令名是大小写不敏感的,所以SET和set表示同一个命令,但...
在foreach循环中,支持break()和continue()。 while循环 while(condition)COMMAND1(ARGS ...)COMMAND2(ARGS ...) ...endwhile(condition) 自定义command CMake系统内置了一批command,https://cmake.org/cmake/help/v3.7/manual/cmake-commands.7.html ...
break()命令可以跳出整个循环,continue()可以跳出当前循环 set(a"")while(NOTaSTREQUAL"xxx")set(a"${a}x")message(WARNING"a =${a}")endwhile() 2.5 循环遍历-foreach 2.5.1 foreach循环变量 + 参数1 参数2... 参数N 语法格式: foreach(循环变量 参数1 参数2 ... 参数N) ...
foreach(indexRANGE9) RANGE 是指定的迭代模型,index 取值从 0 到 9,包括 9. 代码语言:javascript 复制 while(<condition>)<commands>endwhile() while 循环和普通的开发无多大差别,这个不细说。 当然跳出当前判断也有 代码语言:javascript 复制 break()continue()return() ...
foreach 命令的高级用法 foreach 命令还有一些高级用法,可以更灵活地遍历和操作列表变量中的元素。例如: 使用${my_list} 语法遍历列表变量,可以在循环体中使用 BREAK 和 CONTINUE 控制循环流程: foreach(item ${my_list})if(item STREQUAL "bar")continue()endif()if(item STREQUAL "baz")break()endif()messa...
cmake 2.8.6 Last change: June 17, 2014 20 User Commands cmake(1) break() Breaks from an enclosing foreach loop or while loop build_command Get the command line to build this project. build_command(<variable> [CONFIGURATION <config>] [PROJECT_NAME <projname>] [TARGET <target>]) Sets...
break;// Connection closed cleanly by peer, end of thread elseif(error) throwboost::system::system_error(error);// Some other error. boost::asio::write(sock, boost::asio::buffer(data, length)); } } tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); ...