UNIX 계열의 컴파일러에서 정의된 매크로를 알 수 있을까요.

sauron의 이미지

이전에는 UNIX 계열의 컴파일러에서 정의된 매크로는 아래 명령으로 확인할 수 있었읍니다.

$ echo 'main(){printf("hello world\n");}' | gcc -E -v -

Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
/usr/lib/gcc-lib/i486-box-linux/2.7.2/cpp -lang-c -v -undef
-D__GNUC__=2 -D__GNUC_MINOR__=7 -D__ELF__ -Dunix -Di386 -Dlinux
-D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386
-D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386)
-Amachine(i386) -D__i486__ -

그런데 얼마 후부터 저런 결과가 안나와사 매크로를 확인할 수 없었읍니다.
혹시 다른 방법으로 컴파일러에 이미 정의된 메크로를 확인할 수 있는 방법이 있을까요?

ymir의 이미지

gcc 라면.. 간단히 아래처럼 해보세요.

$ echo . | gcc -dM -E -
$ gcc -dM -E - < /dev/null

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

sauron의 이미지

우와~~ 저런 방법이 있었네요. 가뭄에 단비가 따로 없읍니다~~ 감사합니다.