Programing

Makefile을 사용하여 컴파일에서 소스 파일 제외

crosscheck 2020. 12. 29. 07:38
반응형

Makefile을 사용하여 컴파일에서 소스 파일 제외


Makefile에서 와일드 카드 기능을 사용하여 컴파일 프로세스에서 소스 파일을 제외 할 수 있습니까?

여러 소스 파일이있는 것처럼

src/foo.cpp
src/bar.cpp
src/...

그런 다음 내 makefile에

SRC_FILES = $(wildcard src/*.cpp)

하지만 bar.cpp를 제외하고 싶습니다. 이것이 가능한가?


GNU Make를 사용하는 경우 다음을 사용할 수 있습니다 filter-out.

SRC_FILES := $(wildcard src/*.cpp)
SRC_FILES := $(filter-out src/bar.cpp, $(SRC_FILES))

또는 한 줄로 :

SRC_FILES = $(filter-out src/bar.cpp, $(wildcard src/*.cpp))

그것을 위해 찾기를 사용하십시오 :)

SRC_FILES := $(shell find src/ ! -name "bar.cpp" -name "*.cpp")

Makefile subst 함수를 사용할 수 있습니다.

 EXCLUDE=$(subst src/bar.cpp,,${SRC_FILES})

유닉스 글로브의 패턴 SRC / [! B] *. cpp를 제외 B로 시작하는 모든 SRC 파일.

그러나 bar.cpp가 b로 시작하는 유일한 src 파일이거나 고유 한 문자로 시작하도록 이름을 바꾸려는 경우에만 작동합니다.

참조 URL : https://stackoverflow.com/questions/10276202/exclude-source-file-in-compilation-using-makefile

반응형