현재 make를 호출하면 다음이 실행되는 것을 볼 수 있습니다.
cc x.c -o x
내가 보고 싶은 것은 다음과 같다
cc -ggdb3 -O0 -std=c99 -Wall -Werror x.c -l<lib> -lm -o x
아니면 어쩌면
clang -ggdb3 -O0 -std=c99 -Wall -Werror x.c -l<lib> -lm -o x
분명히 매번 입력할 수 있지만 make를 사용할 때 이러한 매개변수와 함께 cc를 사용하는 것을 선호합니다.
어딘가에 make 구성 파일이 있나요?
답변1
make
특히 다음과 같은 경우 변수가 사용됩니다.
CC
사용할 C 컴파일러를 지정하십시오.CFLAGS
컴파일러에 전달할 C 컴파일러 플래그를 지정합니다.LDLIBS
추가할 라이브러리를 지정합니다. (일반적으로Makefile
프로그램에 대한 모든 것을 정의하는 라이브러리를 실제로 작성해야 하지만)필요빌드(일반적으로 라이브러리 포함).
그래서 당신은 달릴 것입니다
make CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x
얻기 위해
cc -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x
그리고
make CC="clang" CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x
얻기 위해
clang -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x
환경에서 변수를 설정할 수도 있습니다(셸 시작 스크립트에서 기본값 설정 가능).
export CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror"
make LDLIBS="-lm" x
귀하의 경우에 a가 누락된 것을 고려하면 Makefile
다음을 찾을 수 있습니다.이 Makefile은 컴파일러를 지정하지 않고 어떻게 C 프로그램을 생성합니까?흥미로운! 이것GNU 제작 매뉴얼그것은 또한 유용할 것입니다.