多数の構成パラメーターを変更できるように、インクルード ファイルの名前をコンパイラ引数として渡したいと考えています。ただし、私の C++ ビルドは、コンパイラとプリプロセッサに渡される引数から引用符を削除するプロセスのようなメイクファイルを介して行われます。私は何か同等のことをしたいと思っていました
#ifndef FILE_ARG
// defaults
#else
#include "FILE_ARG"
#endif
-DFILE_ARG=foo.h を含むコマンド ラインを使用します。もちろん、プリプロセッサは FILE_ARG を変換しないため、これは機能しません。
私はもう試した
#define QUOTE(x) #x
#include QUOTE(FILE_ARG)
同じ理由で機能しません。
スクリプト上の理由から、適切なルーチンでインクルード行を編集するよりも、コマンド ラインでこれを実行したいと思います。何か方法はありますか?