makefile없이 사용할 때 "make"명령을 어떻게 설정할 수 있습니까?

WilliamC

우분투에서 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 , CPPFLAGSLDFLAGSmake 에서 설정할 수 있지만 (귀하의 경우 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

make 명령을 수정하여 Makefile의 플래그를 어떻게 재정의 할 수 있습니까?

분류에서Dev

mosh 연결을 설정할 때 복잡한 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

이전 명령의 출력을 어떻게 사용할 수 있습니까?

분류에서Dev

이전 명령의 출력을 어떻게 사용할 수 있습니까?

분류에서Dev

Makefile : 'make -j'를 사용할 때 부분 컴파일 순서를 어떻게 제어 할 수 있습니까?

분류에서Dev

make로 설치할 때 구성 파일이 뭉개지는 것을 어떻게 방지 할 수 있습니까?

분류에서Dev

이 명령을 어떻게 취소 할 수 있습니까?

분류에서Dev

이 명령을 어떻게 취소 할 수 있습니까?

분류에서Dev

mvn verify 명령을 어떻게 사용할 수 있습니까?

분류에서Dev

외부 명령을 실행할 때 '>'리디렉터 연산자를 어떻게 사용할 수 있습니까?

분류에서Dev

Java 7이 설치되어있을 때 Mavericks에서 Gephi를 어떻게 사용할 수 있습니까?

분류에서Dev

.setSelfDeaf ()를 사용할 때 어떻게이 ReferenceError를 수정할 수 있습니까?

분류에서Dev

-d 옵션과 함께 zip 명령을 사용할 때 "zip 경고 : 이름이 일치하지 않음"을 어떻게 무시할 수 있습니까?

분류에서Dev

Windows "실행"명령에서 명령을 시작할 때 열리는 창을 어떻게 사용자 정의 할 수 있습니까?

분류에서Dev

SignalR을 사용할 때 파이프에서 특정 HttpModule을 어떻게 제거 할 수 있습니까?

분류에서Dev

Meson을 사용할 때 라이브러리 경로를 어떻게 지정할 수 있습니까?

분류에서Dev

find 명령에서 이름에 정규식을 어떻게 사용할 수 있습니까?

분류에서Dev

MassTransit SQS를 사용할 때 MessageGroupId를 어떻게 설정할 수 있습니까?

분류에서Dev

MassTransit SQS를 사용할 때 MessageGroupId를 어떻게 설정할 수 있습니까?

분류에서Dev

R에 두 그룹이있을 때 두 표본 t- 검정을 어떻게 사용할 수 있습니까?

분류에서Dev

명령 줄이나 텍스트 편집기에서 Atom 설정을 어떻게 변경할 수 있습니까?

분류에서Dev

다른 명령을 실행할 때 discord.py 명령의 루프를 어떻게 끊을 수 있습니까?

분류에서Dev

"make"명령이 makefile을 검색하도록 설정할 변수가 있습니까?

분류에서Dev

특정보기를 선택할 때 수명주기 방법을 어떻게 사용할 수 있습니까?

분류에서Dev

for 루프를 만들려면 count () 명령에서 변수 이름을 어떻게 사용할 수 있습니까?

분류에서Dev

WMIC 명령은 무엇이며 어떻게 사용할 수 있습니까?

분류에서Dev

입력이있는 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

discord 사용자의 명령 쿨 다운을 어떻게 재설정 할 수 있습니까?

분류에서Dev

AT 명령을 사용하여 POST를 수행 할 때 HTML 헤더를 어떻게 사용자 정의합니까?

Related 관련 기사

  1. 1

    make 명령을 수정하여 Makefile의 플래그를 어떻게 재정의 할 수 있습니까?

  2. 2

    mosh 연결을 설정할 때 복잡한 명령을 어떻게 실행할 수 있습니까?

  3. 3

    이전 명령의 출력을 어떻게 사용할 수 있습니까?

  4. 4

    이전 명령의 출력을 어떻게 사용할 수 있습니까?

  5. 5

    Makefile : 'make -j'를 사용할 때 부분 컴파일 순서를 어떻게 제어 할 수 있습니까?

  6. 6

    make로 설치할 때 구성 파일이 뭉개지는 것을 어떻게 방지 할 수 있습니까?

  7. 7

    이 명령을 어떻게 취소 할 수 있습니까?

  8. 8

    이 명령을 어떻게 취소 할 수 있습니까?

  9. 9

    mvn verify 명령을 어떻게 사용할 수 있습니까?

  10. 10

    외부 명령을 실행할 때 '>'리디렉터 연산자를 어떻게 사용할 수 있습니까?

  11. 11

    Java 7이 설치되어있을 때 Mavericks에서 Gephi를 어떻게 사용할 수 있습니까?

  12. 12

    .setSelfDeaf ()를 사용할 때 어떻게이 ReferenceError를 수정할 수 있습니까?

  13. 13

    -d 옵션과 함께 zip 명령을 사용할 때 "zip 경고 : 이름이 일치하지 않음"을 어떻게 무시할 수 있습니까?

  14. 14

    Windows "실행"명령에서 명령을 시작할 때 열리는 창을 어떻게 사용자 정의 할 수 있습니까?

  15. 15

    SignalR을 사용할 때 파이프에서 특정 HttpModule을 어떻게 제거 할 수 있습니까?

  16. 16

    Meson을 사용할 때 라이브러리 경로를 어떻게 지정할 수 있습니까?

  17. 17

    find 명령에서 이름에 정규식을 어떻게 사용할 수 있습니까?

  18. 18

    MassTransit SQS를 사용할 때 MessageGroupId를 어떻게 설정할 수 있습니까?

  19. 19

    MassTransit SQS를 사용할 때 MessageGroupId를 어떻게 설정할 수 있습니까?

  20. 20

    R에 두 그룹이있을 때 두 표본 t- 검정을 어떻게 사용할 수 있습니까?

  21. 21

    명령 줄이나 텍스트 편집기에서 Atom 설정을 어떻게 변경할 수 있습니까?

  22. 22

    다른 명령을 실행할 때 discord.py 명령의 루프를 어떻게 끊을 수 있습니까?

  23. 23

    "make"명령이 makefile을 검색하도록 설정할 변수가 있습니까?

  24. 24

    특정보기를 선택할 때 수명주기 방법을 어떻게 사용할 수 있습니까?

  25. 25

    for 루프를 만들려면 count () 명령에서 변수 이름을 어떻게 사용할 수 있습니까?

  26. 26

    WMIC 명령은 무엇이며 어떻게 사용할 수 있습니까?

  27. 27

    입력이있는 명령을 어떻게 실행할 수 있습니까?

  28. 28

    discord 사용자의 명령 쿨 다운을 어떻게 재설정 할 수 있습니까?

  29. 29

    AT 명령을 사용하여 POST를 수행 할 때 HTML 헤더를 어떻게 사용자 정의합니까?

뜨겁다태그

보관