프로그램 사용/gcc
gcc -D 를 이용하여 명령줄에서 define 하기
구차니
2026. 3. 12. 14:00
쉘에서 괄호를 벗겨 버리는군 -_-
소스는 아래
| $ cat t.c //#include <stdio.h> void main() { printf("%c\r\n", 'a'); printf("%c\r\n", STR); } |
명령어 별 변환
실패
| $ gcc -E -DSTR=b t.c $ gcc -E -DSTR='b' t.c $ gcc -E -DSTR="b" t.c # 0 "t.c" # 0 "<built-in>" # 0 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 0 "<command-line>" 2 # 1 "t.c" void main() { printf("%c\r\n", 'a'); printf("%c\r\n", b); } |
성공
| $ gcc -E "-DSTR='b'" t.c $ gcc -E -DSTR=\'b\' t.c # 0 "t.c" # 0 "<built-in>" # 0 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 0 "<command-line>" 2 # 1 "t.c" void main() { printf("%c\r\n", 'a'); printf("%c\r\n", 'b'); } |
그나저나 stm32cubeide 에서 추가하니

컴파일시에 아래처럼 표시된다. 어우.. 이거 윈도우에서 문제 안생기려나?
| '-DSTR='"'"'A'"'"'' |