디렉토리의 모든 C 파일을 별도의 프로그램으로 컴파일하는 GNU Make를 사용하는 방법이 있습니까? 각 프로그램의 이름은 .c 확장자가없는 소스 파일로 지정되어 있습니까? 나는 생각하지 않는다디렉토리의 모든 C 파일을 별도의 프로그램으로 컴파일
25
A
답변
41
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
7
당신은 심지어 메이크 필요 - 기본 암시 메이크업 규칙을 수행해야합니다
$ ls
src0.c src1.c src2.c src3.c
$ make `basename -s .c *`
cc src0.c -o src0
cc src1.c -o src1
cc src2.c -o src2
cc src3.c -o src3
편집 좀 더 간단한 명령 줄을 만들 수 있습니다. "깨끗한"대상을 추가하여 마틴 Broadhurst의 답변을 향상
4
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
clean:
rm -f $(PROGS)
. "make clean"은 모든 실행 파일을 지 웁니다.
+0
'.'와 같은 타겟에는'. PHONE'을 사용해야합니다. 이유는 http://stackoverflow.com/questions/2145590/what-is-the-purpose-of-phony-in-a-makefile을 참조하십시오. –
+0
@MartinBroadhurst 타겟'all'에도'.PHONY'를 사용해야합니다. – iBug
관련 문제
- 1. C# HTTP 디렉토리의 모든 파일을 다운로드하십시오.
- 2. .dbml 파일을 별도의 어셈블리로 컴파일
- 3. 디렉토리의 모든 파일을 일괄 처리합니다.
- 4. 디렉토리의 모든 파일을 개별적으로 실행
- 5. cmake에 디렉토리의 모든 파일을 포함시키는 방법은 무엇입니까?
- 6. Python-FTP 디렉토리의 모든 파일을 다운로드하십시오.
- 7. C#에서 특정 확장명을 가진 디렉토리의 모든 파일을 얻는 방법?
- 8. Perl을 사용하여 디렉토리의 모든 파일을 나열하려면 어떻게합니까?
- 9. 디렉토리의 모든 파일을 bash를 사용하여 하나로 병합하십시오.
- 10. 디렉토리의 모든 PHP 파일을 포함시키는 방법()
- 11. Netbeans PHP - 디렉토리의 모든 파일을 실행하는 방법
- 12. 하스켈에서 디렉토리의 모든 파일을 읽는 방법
- 13. 디렉토리의 모든 파일을 나열하는 방법 Silverlight
- 14. Bash - 디렉토리의 모든 이름 파일을 검색하는 방법?
- 15. 다른 디렉토리의 java 파일 컴파일
- 16. 디렉토리의 모든 파일 받기,
- 17. "진짜"프로그램으로 C++ 컴파일하기
- 18. 링커와 로더를 별도의 프로그램으로 분리하는 이유
- 19. 정적 변수, 별도의 컴파일
- 20. 디렉토리의 특정 파일을 반복하십시오.
- 21. C# 코드가 디렉토리의 각 파일을 검사하도록하려면 어떻게해야합니까?
- 22. 서브 디렉토리의 모든 파일을 한 레벨 위로 이동하는 DOS 명령
- 23. 디렉토리의 모든 파일을 가져 와서 다른 로컬을 지나는 코드가 필요합니까?
- 24. JAVA : 이벤트를 별도의 프로그램으로 작성하십시오 ... 가능합니까?
- 25. 별도의 ASP.NET 응용 프로그램으로 간주되는 것은 무엇입니까?
- 26. 현재 디렉토리의 모든 파일을 인쇄하는 파이썬 한 줄자
- 27. 특정 디렉토리의 XQuery 모든 파일?
- 28. 프로그램이있는 디렉토리의 모든 파일 검사
- 29. 디렉토리의 모든 폴더를 나열하십시오.
- 30. 디렉토리의 모든 Python 파일 실행
마지막 간격은 실제로 탭입니다. –
@ 마틴 브릴리언트! 하지만 나는 왜 당신이 메인 라인에서 PROGS와 SRCS를 부르지 않는지 이해하지 못한다. –
@ user4050, 죄송합니다. 질문을 놓쳤습니다. 기본'all' 타겟은'$ (PROGS)'를 만들고, 메인 라인은'% .c' 파일에서'$ (PROGS)'가되는 확장자없이 파일을 만드는 법을 말합니다. $ (SRCS)'는 있습니다. –