우분투에서 C로 프로그래밍을 배우는 새로운 사람 예를 들어 hello.c 사용하기 비디오 튜토리얼에서 선생님이 "make hello"를 사용하여 현재 디렉토리에 Makefile을 설정하지 않고도 hello.c를 컴파일 할 수 있음을 보았습니다. 그리고 명령은 다음과 같습니다.
bash$ make hello
gcc -g -Wall hello.c -o hello
내 자신의 우분투 14.04에서 make를 사용하려고 시도했습니다. 빌드 필수를 설치하고 동일한 hello.c를 시도했습니다.
bash$ make hello
cc hello.c -o hello
위와 같습니다. -g, -Wall 또는 다른 플래그를 얻기 위해 어떻게 변경할 수 있습니까?
방법의 make
작품이 생산하는 것입니다 목표를 밖으로 소스 알려져을 통해 조리법 .
자신 만의 Makefile 을 작성할 때 레시피를 제공하지만 make
사용할 수있는 내부 레시피가 있습니다. 으로 나열 할 수 있습니다 make -p
.
레시피 중 하나는 make
<something> .c에서 <something>을 생성하는 방법을 알려줍니다 . 당신이 실행하는 경우 make hello
, make
검사 방법 생산하는 안녕하세요 , 파일이 있음을 발견 에서는 hello.c를 그리고 생성하는 방법을 알고있는 인사 로부터 에서는 hello.c - 그 내부 규칙을 사용.
이제 규칙은 다음과 같습니다.
%: %.c
# recipe to execute (built-in):
$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
그리고 중요한 부분은 $(LINK.c)
다음과 같습니다
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
이 시점에서 구문을 이해할 필요는 없습니다. 중요한 것은 여러분 make hello
이 다음으로 변환 된다는 것 입니다 (사용하지 않는 일부 변수는 생략 됨).
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) hello.c -o hello
이제 CC , CFLAGS , CPPFLAGS 및 LDFLAGSmake
에서 설정할 수 있지만 (귀하의 경우 CC 는 "cc"로 설정되고 나머지는 설정되지 않음) 환경 변수로이를 재정의 할 수 있습니다. 당신이 원하는 것은
CC=gcc
CFLAGS="-g -Wall"
하나의 명령에 대해서만 수행하려면 다음을 실행하십시오.
CC=gcc CFLAGS="-g -Wall" make hello
한 세션에 대해 수행하려면 (터미널을 닫을 때까지) 다음을 실행하십시오.
export CC=gcc
export CFLAGS="-g -Wall"
그런 다음 원하는 만큼만 make hello
또는make whatever
이를 영구적으로 수행하려면 .profile
파일에 이러한 변수를 설정하고 ~/.profile
(존재하지 않는 경우 생성)
export CC=gcc
export CFLAGS="-g -Wall"
그것에. 아니면 그냥 실행
echo 'export CC=gcc' >> ~/.profile
echo 'export CFLAGS="-g -Wall"' >> ~/.profile
두 경우 모두 source ~/.profile
새 터미널을 시작하거나 시작 해야합니다 . 그 이후로 행복하게 작동 할 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다