2

簡単な printf C コードを書き、簡単なメイクファイルを作成しました。CFLAGS、CPPFLAGS、および LDFLAGS を使用して make を実行すると、変数の値が cc 実行に入り、その後、次のようにそれらの値を使用せずに gcc が実行されます。

$ CFLAGS="-I." CPPFLAGS="-D TESTEDEFINE" CXXFLAGS="TESTECXXFLAGS" LDFLAGS="-L." LFLAGS="TESTELFLAGS" make
cc -I. -D TESTEDEFINE -L.  teste.c   -o teste
gcc -o teste teste.c

ビルドされたプログラムを実行すると、定義されていない #else の printf が返されるため、define は定義されていません。

teste.c

#include <stdio.h>

int main()
{
#if defined(TESTEDEFINE)
  printf("TESTEDEFINE!!!");
#else
  printf("!!!");
#endif
  return 0;
}

メイクファイル

all: teste
  gcc -o teste teste.c
4

1 に答える 1