리눅스 make질문

이제 막 make명령어 공부중이어서 간단한 것부터 하고있습니다. 다중 타겟 방법을 이용할려고 하는데 계속 오류가 발생합니다. 간단한 것인데 벌써 막히내여.
오류내용
main.o: In function `main':
(경로)main.c:7: undefined reference to `test2'
collect2: error: ld returned 1 exit status
make: *** [test1] 오류 1
Makefile파일 내용
.SUFFIXES : .c .o
CC = gcc
CFLAGS = -g
OBJS1 = main.o test1.o
OBJS2 = main.o test2.o
SRCS = $(OBJS1:.o=.c) $(OBJS2:.o=.c)
all : test1 test2
test1 : $(OBJS1)
$(CC) -o test1 $(OBJS1)
test2 : $(OBJS2)
$(CC) -o test2 $(OBJS2)
main.c 파일 내용
#include
#include "test.h"
int main()
{
test1();
test2();
printf("main compliete\n");
return 0;
test.h 파일내용
void test1();
void test2();
test1.c 파일 내용
#include
void test1()
{
printf("test1 complete\n");
}
test2.c 파일 내용
#include
void test2()
{
printf("test2 complete\n");
}
답변은 아니지만,
답변은 아니지만,
굳이 Makefile을 꼭 사용하셔야 하는게 아니면 cmake를 한번 써보시는건 어떨까싶습니다.
마지막 make 대신에 다음을 더 선호합니다.
마지막 make 대신에 다음을 더 선호합니다.
cmake --build .
make 가 문제가 아니라 기본적으로 C 언어를 먼저
make 가 문제가 아니라 기본적으로 C 언어를 먼저 공부 해야 할듯요.
main() 에서 test2()를 호출하고 있네요.
main() 에서 test2()를 호출하고 있네요. 그런데 test1.c 만 포함시키면 안되죠.
댓글 달기