make를 사용하여 컴파일 및 빌드

make를 사용하여 컴파일 및 빌드

현재 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 제작 매뉴얼그것은 또한 유용할 것입니다.

관련 정보