makefile에서`OBJECTS = $ (SOURCES : .cpp = .o)`는 무엇을 의미합니까?

MistyD

튜토리얼을 살펴보면 다음과 같은 내용이 있습니다.

# File names
EXEC = run
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)    

.....
%.o: $(SRCPATH)/%.cpp $(INC)
    $(CC) $(CXXFLAGS) $(INCLUDES) -c $< -o $@

나는 문서를 이해하고 있는지 확실하지 않으며 누군가가 마지막 두 진술을 설명 할 수 있다면 감사하겠습니다. Makefile에 대한 세 가지 질문이 있습니다.

질문 1 :

차이점은 무엇입니까

 SOURCES = $(wildcard *.cpp)

 SOURCES = $(*.cpp)

두 번째 경우는 .cpp 파일이 존재하지 않는 경우에만 작동하므로 작동하지 않는다고 말합니다. 내 질문은 왜 첫 번째가 작동합니까?

질문 2 : 무슨 'wildcard *'뜻입니까? 마지막 진술 OBJECTS = $(SOURCES:.cpp=.o)은 무엇을 의미합니까?

질문 3 : % .o가 대상으로 배치되면 무엇을 의미합니까? *.o, %.o의 차이점은 무엇입니까?wildcard *.cpp

중복 제거기
SOURCES = $(*.cpp)
SOURCES = *.cpp
SOURCES = $(wildcard *.cpp)

첫 번째는 오류이고 두 번째는 너무 늦게 확장되고 (정의가 아님) 세 번째는 소스 디렉토리에서 접미사가 .cpp 인 모든 파일을 검색합니다.
내장 함수 wildcard는 자연스럽게 발생하지 않는 와일드 카드 확장을 강제하는 데 사용됩니다.

OBJECTS = $(SOURCES:.cpp=.o)

, 항목의 끝에있는 every 를로 대체 한 후의 OBJECTS값이 할당 됩니다 .SOURCES.cpp.o

그리고 %.o목표는 .o다른 것에서 s 를 만들기위한 규칙을 정의한다는 것을 의미합니다 .

참고 문헌 : GNU make manual

좋은 기본 메이크 파일은 여기를 참조하십시오 : https://stackoverflow.com/a/26579143

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

makefile에서 "$ (@ : %. o = %. d)"는 무엇을 의미합니까?

분류에서Dev

makefile에서 $ @ 및 $ <는 무엇을 의미합니까?

분류에서Dev

$ (number)는 Makefile에서 무엇을 의미합니까?

분류에서Dev

@ [arguments]는 makefile에서 무엇을 의미합니까?

분류에서Dev

~는 makefile 또는 셸 명령에서 무엇을 의미합니까?

분류에서Dev

"if"에서 -o는 무엇을 의미합니까?

분류에서Dev

터미널 명령에서`>>`는 무엇을 의미합니까?

분류에서Dev

터미널에서 루트는 무엇을 의미합니까?

분류에서Dev

터미널에서 루트는 무엇을 의미합니까?

분류에서Dev

Ubuntu 터미널에서 "-t"는 무엇을 의미합니까?

분류에서Dev

Makefile의 % 기호는 무엇을 의미합니까?

분류에서Dev

의사 코드에서 "| ="는 무엇을 의미합니까?

분류에서Dev

ps의 출력에서 <defunct>는 무엇을 의미합니까?

분류에서Dev

Windows의 Netstat에서 "[::]"는 무엇을 의미합니까?

분류에서Dev

w의 출력에서 "pts /"는 무엇을 의미합니까?

분류에서Dev

.rc 파일의 MENUITEM에서 &는 무엇을 의미합니까?

분류에서Dev

>>는 의사 코드에서 무엇을 의미합니까?

분류에서Dev

AutoHotKey의 예에서“A”는 무엇을 의미합니까?

분류에서Dev

이 방법에서 o는 무엇을 의미합니까-bool IsSatisfiedBy (T o) C #

분류에서Dev

이 방법에서 o는 무엇을 의미합니까-bool IsSatisfiedBy (T o) C #

분류에서Dev

Javascript에서 F = 또는 F = a =>는 무엇을 의미합니까?

분류에서Dev

Makefile의 .cpp에서 .o 파일로

분류에서Dev

"kill -9 <>"에서 "<>"는 무엇을 의미합니까?

분류에서Dev

`!!`는`sudo !!`에서 무엇을 의미합니까?

분류에서Dev

쉘에서 "$$"는 무엇을 의미합니까?

분류에서Dev

printf에서 "%. # s"는 무엇을 의미합니까?

분류에서Dev

cmusphinx 결과에서 괄호는 무엇을 의미합니까?

분류에서Dev

MiniZinc에서 $는 무엇을 의미합니까?

분류에서Dev

pyaudio에서 채널 수는 무엇을 의미합니까?

Related 관련 기사

  1. 1

    makefile에서 "$ (@ : %. o = %. d)"는 무엇을 의미합니까?

  2. 2

    makefile에서 $ @ 및 $ <는 무엇을 의미합니까?

  3. 3

    $ (number)는 Makefile에서 무엇을 의미합니까?

  4. 4

    @ [arguments]는 makefile에서 무엇을 의미합니까?

  5. 5

    ~는 makefile 또는 셸 명령에서 무엇을 의미합니까?

  6. 6

    "if"에서 -o는 무엇을 의미합니까?

  7. 7

    터미널 명령에서`>>`는 무엇을 의미합니까?

  8. 8

    터미널에서 루트는 무엇을 의미합니까?

  9. 9

    터미널에서 루트는 무엇을 의미합니까?

  10. 10

    Ubuntu 터미널에서 "-t"는 무엇을 의미합니까?

  11. 11

    Makefile의 % 기호는 무엇을 의미합니까?

  12. 12

    의사 코드에서 "| ="는 무엇을 의미합니까?

  13. 13

    ps의 출력에서 <defunct>는 무엇을 의미합니까?

  14. 14

    Windows의 Netstat에서 "[::]"는 무엇을 의미합니까?

  15. 15

    w의 출력에서 "pts /"는 무엇을 의미합니까?

  16. 16

    .rc 파일의 MENUITEM에서 &는 무엇을 의미합니까?

  17. 17

    >>는 의사 코드에서 무엇을 의미합니까?

  18. 18

    AutoHotKey의 예에서“A”는 무엇을 의미합니까?

  19. 19

    이 방법에서 o는 무엇을 의미합니까-bool IsSatisfiedBy (T o) C #

  20. 20

    이 방법에서 o는 무엇을 의미합니까-bool IsSatisfiedBy (T o) C #

  21. 21

    Javascript에서 F = 또는 F = a =>는 무엇을 의미합니까?

  22. 22

    Makefile의 .cpp에서 .o 파일로

  23. 23

    "kill -9 <>"에서 "<>"는 무엇을 의미합니까?

  24. 24

    `!!`는`sudo !!`에서 무엇을 의미합니까?

  25. 25

    쉘에서 "$$"는 무엇을 의미합니까?

  26. 26

    printf에서 "%. # s"는 무엇을 의미합니까?

  27. 27

    cmusphinx 결과에서 괄호는 무엇을 의미합니까?

  28. 28

    MiniZinc에서 $는 무엇을 의미합니까?

  29. 29

    pyaudio에서 채널 수는 무엇을 의미합니까?

뜨겁다태그

보관