나는 메이크 파일을 쓰는 데 어려움을 겪고 있습니다. 나는 extern
변수를 사용하면서 경험을 쌓았습니다. makefile을 사용하지 않고 프로젝트를 빌드 할 때 오류가 전혀없고 프로그램을 실행할 수 있습니다. 그러나 프로젝트를 빌드하기 위해 메이크 파일을 작성한 시점부터 undefined reference to
오류가 발생합니다.링크 시간 "정의되지 않은 참조"오류
나는 나와 파일이 3 개 이상 있지만 간단하게하기 위해 여기서는 설치를 설명하기 위해 3 개의 파일을 사용합니다. 내가 file1.c에서와 인 file2.c를 가리키는 연결 시간 동안 undefined reference to
오류를 얻을 메이크 파일을 사용하면
/************Project********/
/* main.c */
int x;
main()
{
...
}
/* File1.c*/
extern int x;
fn1()
{
...
}
/* File2.c*/
extern int x;
fn2()
{
...
}
/*******************************/
?
내가 makefile을 사용할 때 (makefile이 사용되지 않은 경우) 일식이 스스로 고치는 실수를하고 있습니까?
내 최종 메이크 파일은 다음과 같습니다 -
OBJ1 = 알고리즘/main.o를 알고리즘/File1.o 알고리즘/file2.o의 당신의 메이크에 차이가있다
all: final
final: main.o algorithm/File1.o algorithm/File2.o
@echo "Linking - making Final"
$(CC) -o [email protected] $(OBJ1)
Makefile에서 "최종"규칙은 main.o에 종속되지만 algorithm/main.o와 연결됩니다. 그게 의도적 인거야? – bjg