Make를 사용하여 동일한 방식으로 여러 파일 유형을 컴파일하는 방법

마틴 G

a Makefile에는 모든 .cc.cpp파일의 컴파일을 처리하기 위해 다음과 같은 두 개의 세미 제네릭 대상이 있습니다 .

$(OBJ_DIR)/%.o: %.cc
    mkdir -p $(dir $@)
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCDIRS) -c $< -MD -o $@

$(OBJ_DIR)/%.o: %.cpp
    mkdir -p $(dir $@)
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCDIRS) -c $< -MD -o $@

그것들이 매우 비슷하기 때문에 (파일 확장자 만 다름) 어떻게 든 병합하여 두 파일 유형에 대해 하나의 일반 대상을 만들 수 있습니까?

미친 과학자

일반적으로 조합 할 수 없습니다. 두 가지 옵션이 있습니다. 첫 번째는 evalAmon Zilca가 연결 한 답변에서와 같은 진술 을 사용하는 것입니다.

다른 하나는 레시피를 변수로 유지하고 재사용하는 것입니다.

define COMPILE
  mkdir -p $(dir $@)
  $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCDIRS) -c $< -MD -o $@
endef

$(OBJ_DIR)/%.o: %.cc
        $(COMPILE)

$(OBJ_DIR)/%.o: %.cpp
        $(COMPILE)

개인적으로 저는이 방법이 더 좋습니다. eval당신이 확장 기능을 많이 가지고, 또는 당신은 쉽게 변수를 조정하여 더 많은 단지 추가 할 수 있도록하려는 경우가 아니면 메소드는 나에게 잔인한 것 같은 느낌이 든다.

아, $(@D)대신 사용할 수 있습니다 $(dir $@).

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

TypeScript 컴파일러 API를 사용하여 배열 유형을 추출하는 방법

분류에서Dev

속성 파일을 사용하여 하나의 로거에 동일한 유형의 여러 어 펜더를 사용하는 방법은 무엇입니까?

분류에서Dev

grunt-sass를 사용하여 여러 scss 파일을 여러 css 파일로 컴파일하는 방법은 무엇입니까?

분류에서Dev

Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

분류에서Dev

sftp를 사용하여 여러 파일을 넣는 방법

분류에서Dev

컴파일러 API를 사용하여 유형 검사 전에 TypeScript 코드를 변환하는 방법

분류에서Dev

파이썬을 사용하여 컴파일 된 URL을 normail 형식으로 변환하는 방법

분류에서Dev

PHP를 사용하여 적절한 형식으로 텍스트 파일의 내용을 인쇄하는 방법

분류에서Dev

grunt-contrib-less를 사용한 Grunt 작업-원본 .less 파일 이름을 유지하면서 여러 스타일 시트를 컴파일하는 방법

분류에서Dev

동일한 형식의 여러 파일을 단일 파일로 병합하는 방법은 무엇입니까?

분류에서Dev

클로저 컴파일러를 사용하여 제네릭 유형을 확장하는 클래스에 주석을 추가하는 방법

분류에서Dev

클로저 컴파일러를 사용하여 제네릭 유형을 확장하는 클래스에 주석을 추가하는 방법

분류에서Dev

bootstrap-vue를 사용하여 여러 파일을 업로드하는 방법

분류에서Dev

배치 파일을 사용하여 멀티 팔 컴퓨터에 Java를 자동으로 설치하는 방법

분류에서Dev

Scala 컴파일러를 사용하여 부울 표현식을 typecheck하는 방법이 있습니까?

분류에서Dev

cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

분류에서Dev

jQuery를 사용하여 유형 파일을 결정하는 방법

분류에서Dev

MinGW를 사용하여 XGBoost를 컴파일하는 방법

분류에서Dev

PHP를 사용하여 여러 파일 이름을 복사하는 방법?

분류에서Dev

동적 파일 핸들을 사용하여 여러 파일을 동적으로 여는 방법

분류에서Dev

여러 다른 입력 파일을 사용하여 Java에서 동일한 클래스를 자동으로 실행하는 방법

분류에서Dev

clang ++를 사용하여 컴파일하는 방법?

분류에서Dev

Minishift-Laravel mix를 사용하여 자산을 컴파일하는 방법

분류에서Dev

컴파일러에 전달 된 동일한 매개 변수를 사용하여 cmake에서 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

라이브러리 가져 오기를 사용하여 C 파일을 웹 어셈블리 파일 (Emscripten)로 컴파일하는 방법

분류에서Dev

-Wextra 컴파일러 옵션을 사용하여 OMNeT ++ 모델을 컴파일하는 방법

분류에서Dev

extern을 사용하여 g ++에서 여러 파일을 컴파일하는 방법

분류에서Dev

텍스트를 바꾼 후 문서 파일 내용을 동일한 형식으로 유지하는 방법

분류에서Dev

NodeJS를 사용하여 여러 HTML 파일을 제공하는 방법

Related 관련 기사

  1. 1

    TypeScript 컴파일러 API를 사용하여 배열 유형을 추출하는 방법

  2. 2

    속성 파일을 사용하여 하나의 로거에 동일한 유형의 여러 어 펜더를 사용하는 방법은 무엇입니까?

  3. 3

    grunt-sass를 사용하여 여러 scss 파일을 여러 css 파일로 컴파일하는 방법은 무엇입니까?

  4. 4

    Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

  5. 5

    sftp를 사용하여 여러 파일을 넣는 방법

  6. 6

    컴파일러 API를 사용하여 유형 검사 전에 TypeScript 코드를 변환하는 방법

  7. 7

    파이썬을 사용하여 컴파일 된 URL을 normail 형식으로 변환하는 방법

  8. 8

    PHP를 사용하여 적절한 형식으로 텍스트 파일의 내용을 인쇄하는 방법

  9. 9

    grunt-contrib-less를 사용한 Grunt 작업-원본 .less 파일 이름을 유지하면서 여러 스타일 시트를 컴파일하는 방법

  10. 10

    동일한 형식의 여러 파일을 단일 파일로 병합하는 방법은 무엇입니까?

  11. 11

    클로저 컴파일러를 사용하여 제네릭 유형을 확장하는 클래스에 주석을 추가하는 방법

  12. 12

    클로저 컴파일러를 사용하여 제네릭 유형을 확장하는 클래스에 주석을 추가하는 방법

  13. 13

    bootstrap-vue를 사용하여 여러 파일을 업로드하는 방법

  14. 14

    배치 파일을 사용하여 멀티 팔 컴퓨터에 Java를 자동으로 설치하는 방법

  15. 15

    Scala 컴파일러를 사용하여 부울 표현식을 typecheck하는 방법이 있습니까?

  16. 16

    cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

  17. 17

    jQuery를 사용하여 유형 파일을 결정하는 방법

  18. 18

    MinGW를 사용하여 XGBoost를 컴파일하는 방법

  19. 19

    PHP를 사용하여 여러 파일 이름을 복사하는 방법?

  20. 20

    동적 파일 핸들을 사용하여 여러 파일을 동적으로 여는 방법

  21. 21

    여러 다른 입력 파일을 사용하여 Java에서 동일한 클래스를 자동으로 실행하는 방법

  22. 22

    clang ++를 사용하여 컴파일하는 방법?

  23. 23

    Minishift-Laravel mix를 사용하여 자산을 컴파일하는 방법

  24. 24

    컴파일러에 전달 된 동일한 매개 변수를 사용하여 cmake에서 명령을 실행하는 방법은 무엇입니까?

  25. 25

    라이브러리 가져 오기를 사용하여 C 파일을 웹 어셈블리 파일 (Emscripten)로 컴파일하는 방법

  26. 26

    -Wextra 컴파일러 옵션을 사용하여 OMNeT ++ 모델을 컴파일하는 방법

  27. 27

    extern을 사용하여 g ++에서 여러 파일을 컴파일하는 방법

  28. 28

    텍스트를 바꾼 후 문서 파일 내용을 동일한 형식으로 유지하는 방법

  29. 29

    NodeJS를 사용하여 여러 HTML 파일을 제공하는 방법

뜨겁다태그

보관