반응형
makefiles-모든 c 파일을 한 번에 컴파일
GCC 전체 프로그램 최적화를 실험하고 싶습니다. 이렇게하려면 모든 C 파일을 한 번에 컴파일러 프런트 엔드에 전달해야합니다. 그러나, 저는 메이크 파일을 사용하여 빌드 프로세스를 자동화하고 메이크 파일 마법에 관해서는 전문가가 아닙니다.
GCC를 한 번만 호출하여 컴파일 (링크도 가능)하려면 메이크 파일을 어떻게 수정해야합니까?
참고로 내 makefile은 다음과 같습니다.
LIBS = -lkernel32 -luser32 -lgdi32 -lopengl32
CFLAGS = -Wall
OBJ = 64bitmath.o \
monotone.o \
node_sort.o \
planesweep.o \
triangulate.o \
prim_combine.o \
welding.o \
test.o \
main.o
%.o : %.c
gcc -c $(CFLAGS) $< -o $@
test: $(OBJ)
gcc -o $@ $^ $(CFLAGS) $(LIBS)
LIBS = -lkernel32 -luser32 -lgdi32 -lopengl32
CFLAGS = -Wall
# Should be equivalent to your list of C files, if you don't build selectively
SRC=$(wildcard *.c)
test: $(SRC)
gcc -o $@ $^ $(CFLAGS) $(LIBS)
SRCS=$(wildcard *.c)
OBJS=$(SRCS:.c=.o)
all: $(OBJS)
빅뱅 규칙을 위해 접미사 규칙 (% .o : % .c)을 제거해야합니다. 이 같은:
LIBS = -lkernel32 -luser32 -lgdi32 -lopengl32
CFLAGS = -Wall
OBJ = 64bitmath.o \
monotone.o \
node_sort.o \
planesweep.o \
triangulate.o \
prim_combine.o \
welding.o \
test.o \
main.o
SRCS = $(OBJ:%.o=%.c)
test: $(SRCS)
gcc -o $@ $(CFLAGS) $(LIBS) $(SRCS)
GCC의 전체 프로그램 최적화를 실험하려면 위의 CFLAGS에 적절한 플래그를 추가해야합니다.
해당 플래그에 대한 문서를 읽으면서 링크 타임 최적화에 대한 참고 사항도 참조합니다. 당신도 그것들을 조사해야합니다.
ReferenceURL : https://stackoverflow.com/questions/170467/makefiles-compile-all-c-files-at-once
반응형
'programing' 카테고리의 다른 글
MySQLdb, mysqlclient 및 MySQL 커넥터 / Python의 차이점은 무엇입니까? (0) | 2020.12.24 |
---|---|
typescript에서“not-type of parameter에 할당 할 수 없음”오류는 무엇입니까? (0) | 2020.12.24 |
How can I redirect STDERR to STDOUT, but ignore the original STDOUT? (0) | 2020.12.24 |
Javascript Engines Advantages (0) | 2020.12.24 |
UriFormatException : 잘못된 URI : 잘못된 포트가 지정되었습니다. (0) | 2020.12.24 |