一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して11日目です。クリックしてイベントの詳細をご覧ください。
以前にcmakeがコンパイルしたときに出力される情報を出力するためにメッセージを使用しました。プロジェクトの名前を出力しましょう。プロジェクト名は変数PROJECT_NAMEに格納され、変数値を抽出${}
できます。
message("${PROJECT_NAME}")
复制代码
これにより、アイテム名を格納する変数の値が出力され、$ {variable}が変数の値を抽出します。変数が存在しない場合は、今度は空の文字列を出力します。
message("project name = ${PROJECT_NAME}")
复制代码
しかし、これは十分に一般的ではありません。変数名を出力する関数printを定義できます。
次に、関数命令を使用して関数を定義します。最初のパラメーターは関数名で、2番目のパラメーターはパラメーターです。
function(print var)
message("${var} = ${${var}}")
endfunction()
print(PROJECT_NAME)
复制代码
${var}
ここでの解析は、渡した変数名であるため、最初の出力${var}
出力はPROJECT_NAMEであり、次にPROJECT_NAME変数がフェッチされるため、次のようになり${${var}}
ます
また、関数命令で関数を定義するときに、パラメーター名を指定せずに関数名のみを指定することもできます。その後、いくつかの組み込み変数(パラメーター)を使用して、入力関数の1つ以上のパラメーターを取得できます。
パラメータ名 | 説明する |
---|---|
ARGN | パラメータリストを取得 |
ARGC | パラメータの数を取得します |
ARGV | パラメータ値を取得する |
PROJECT_NAME;MyVAR
复制代码
set(MyVAR "hello world")
function(print)
message("${ARGN}")
endfunction()
print(PROJECT_NAME MyVAR)
复制代码
set(MyVAR "hello world")
function(print)
message("${ARGN}")
message("${ARGC}")
message("${ARGV0}")
endfunction()
print(PROJECT_NAME MyVAR)
复制代码
PROJECT_NAMEは、cmake独自の変数であり、値が「helloworld」のカスタムMyVARです。関数を定義するとき、変数を正式なパラメーターとして定義しませんでした。これは、cmakeの関数にいくつかの組み込み変数が提供されているため、これらの変数を介してユーザー入力変数にアクセスできるため、変数の数が変数。2つの変数を渡す場合。
PROJECT_NAME;MyVAR
2
PROJECT_NAME
复制代码
ARGNは変数名のセットであり、ARGC変数値は入力変数の数であり、ARGVは関数に与えられたすべての引数のリストを保持します
set(MyVAR "hello world")
function(print)
message("${ARGN}")
message("${ARGC}")
foreach(var ${ARGN})
message("${ARGV}==${${var}}")
endforeach()
endfunction()
print(PROJECT_NAME MyVAR)
复制代码
foreachステートメントを使用してARGNをトラバースできます