cmake(3)関数の使い方を簡単に紹介します

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・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をトラバースできます

おすすめ

転載: juejin.im/post/7085237413227790366