1

これが初歩的な質問であれば申し訳ありませんが、私はLinuxが初めてです。makeコマンドを使用してアプリケーションをビルドする際に、ソース コード内の定数を置き換える方法はありますか?

次に考えられる方法は、ソース コードで使用されているヘッダー ファイルを変更することだとわかっていますが、複数のマイクロコントローラーをプログラムする必要があり、それぞれのマイクロコントローラーには固有の整数を番号として指定する必要があるため、これをお願いします (この番号は、コード)。

どんなヒントでも大歓迎です!

4

2 に答える 2

3

コマンドラインでコンパイラに渡されるC 言語マクロを使用できます。通常のMakefileスニペットは次のようになります

CFLAGS = -DVERSION_INT=42 -DVERSION_STRING=\"Frobozz Magic Frobnicator (TM)\"

main: main.c
         $(CC) $(CFLAGS) -o $@ main.c

main.c には、

static int version = VERSION_INT;
static char vers[] = VERSION_STRING;
于 2012-09-19T08:34:16.870 に答える
2

多くの場合、コンパイラを呼び出すときにプリプロセッサ マクロを定義することによって行われます。たとえば、次のようになります。

# Makefile
NUMBER := 42
%.o : %.c
    gcc -c -o $@ ${CPPFLAGS} ${CFLAGS} -DNUMBER=${NUMBER} $<

ソース ファイル内:

// some.c
int number = NUMBER;
于 2012-09-19T08:33:36.067 に答える