기본 제공 규칙을 변경하는 방법

기본 제공 규칙을 변경하는 방법

makefile이 없을 때 make에 의해 자동으로 적용되는 규칙을 변경할 수 있는 방법이 있는지 알고 싶습니다. 예를 들어, make foo이라는 파일이 포함된 디렉터리에 쓰면 해당 디렉터리에 파일이 없더라도 foo.cpp실행됩니다 .g++ foo.cpp -o foomakefile

내 필요에 맞게 변경하고 싶습니다. 예를 들어 g++ foo.cpp -o foo --std=c++11 -W -O2 -I .... .c, .java 또는 .tex와 같은 다른 확장자에 대한 새로운 규칙을 추가하고 싶습니다.

새 규칙을 정의하는 방법은 알고 있지만 모든 디렉터리에 makefile을 만드는 것 외에는 규칙을 지정할 위치를 모르겠습니다. 이러한 기본 제공 규칙을 모두 포함하는 파일이 있다고 가정하지만 해당 파일을 찾을 수 없거나 내 규칙으로 오버로드하는 방법을 찾을 수 없습니다.

저는 주로 Mingw와 cygwin을 사용하여 작업하고 있습니다.

답변1

에 따르면수동, 규칙은 실제로 다음과 같습니다.

n.ccno는 , n.cpp또는 n.C'' 형식의 레시피를 사용하여 자동으로 만들어집니다 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c. .ccC++ 소스 파일에는 ' ' 대신 접미사 ' '를 사용하는 것이 좋습니다 .C.

따라서 환경 변수(예: ~/.bashrc)를 조정하거나 해당 규칙을 재정의하는 Makefile을 생성하면 됩니다.

Makefile이 없는 디렉토리에서 사용하면 make -p모든 기본값과 내장 규칙을 배울 수 있습니다.

관련 정보