[解決済み] マクロの定義をmakeのコマンドライン引数(-D)からCのソースコードに渡すには?
2022-07-14 14:27:52
質問
私は通常、"make コマンドライン" から "makefile" にマクロ定義を渡すとき、オプション : -Dname=value "というオプションを使用しています。定義は makefile の内部でアクセス可能です。
私はまた、"makefile" から "source code" へ、同様のコンパイラーオプションを使用してマクロ定義を渡します。 -Dname=value (多くのコンパイラでサポートされています) を使用しています。この定義は、ソースコードでアクセス可能です。
私が今必要としているのは、makefile のユーザーが、makefile の中で何も変更することなく、"make.exe commandline" から "source code" にすぐに任意のマクロ定義を渡すことができるようにすることです。
というわけで、ユーザは : make -f mymakefile.mk -SOMEOPTION var=5 と入力します。
と入力すると、main.c のコードに直接 var が表示されます。
int main()
{
int i = var;
}
どのように解決するのですか?
コール
make
コマンドはこのようになります。
make CFLAGS=-Dvar=42
を必ず使用してください。
$(CFLAGS)
をMakefileのコンパイルコマンドに追加してください。jørgensen が言ったように、変数の代入は
make
コマンドで上書きされます。
CFLAGS
の値は、すでにMakefileで定義されています。
を設定することもできます。
-Dvar=42
とは別の変数で
CFLAGS
でこの変数を再利用します。
CFLAGS
を完全にオーバーライドしないように
CFLAGS
.
関連
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
[解決済み】コマンドラインからmakeに追加の変数を渡す場合
-
関数 'malloc' の暗黙の宣言に対する解決策
-
C - 添え字の値が配列でもポインタでもベクトルでもないエラー
-
[解決済み] C言語でchar配列をコピーする方法は?
-
[解決済み] Linux Socket write() によるBad File Descriptor C
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] char *とchar[]の違い [重複]
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] C言語でファイルサイズを取得するには?[重複]する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
関数 'malloc' の暗黙の宣言に対する解決策
-
[解決済み] ソケットアクセプト - "開かれているファイルが多すぎる"
-
[解決済み] C関数から文字列を返す
-
[解決済み] C - Setデータ構造を実装するには?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] C 言語の配列へのポインタ/ポインタの配列の曖昧さ解消
-
[解決済み] ストラクチャーとユニオンの違い
-
[解決済み] C言語の構造体(CGRectやCGPointなど)をNSLog化することは可能ですか?