2016-12-04 6 views
1

[내 디렉토리의 파일] [1]복수의 C 및 헤더 파일을 1 개의 메인으로 컴파일하기

make 파일로 컴파일하는 데 도움이 필요합니다.

그래서 나는이 링크 목록 할당을하고 있으며 지시 사항이 있습니다. stringlist.h에는 노드와 함수 프로토 타입이 포함되어 있어야합니다. stringlist.c에는 stringlist.h에 정의 된 함수가 완료되어 있어야합니다. 그러나 stringlist.c는 main을 전혀 포함하지 않아야합니다. 그런 다음, namelist.c는 main을 포함하고 I/O와 그저 stringlist.c에있는 명령 함수를 호출하기로되어 있습니다.

이렇게 컴파일하려면 make 파일을 만들어야합니다. 시도 할 때마다 C 파일 중 하나에서 main이 종료되지 않으므로 오류가 발생합니다. 용어 전체에 걸쳐 "gcc -std = gnu99 -m32 -Wall -g -o file file.c"와 같은 코드를 컴파일했습니다. 하지만 작동하지 않습니다.

어떻게 make 파일을 만들 수 있습니까? 시간을 보냈으며 알아낼 수 없습니다. 조나단 레플러에 의해 언급 한 바와 같이

OBJ := namelist.c stringlist.c 
GCC := gcc -g 
CFLAGS := -std=gnu99 -m32 -Wall 

compile: $(OBJ) 
    $(GCC) $(CFLAGS) $(OBJ) -o executable 

답변

0

, 내가 제공되는 샘플 메이크 몇 가지 나쁜 생각을했다 :

0

이보십시오.

# compiler: 
CC = gcc 

# compiler flags: 
CFLAGS = -g -Wall 

# the build target executable: 
TARGET = executable 

# object files to build: 
OBJ = namelist.o stringlist.o 

all: $(TARGET) 

$(TARGET): $(OBJ) 
     $(CC) $(CFLAGS) -o $(TARGET) $(OBJ) 
+0

"make : *** 대상을 '% (OBJ)'로 만드는 규칙이 없습니다. '컴파일'이 필요합니다. 중지하십시오. – Programmer

+0

@Programmer 'compile'을 'all'로 바꾸어보십시오. –

+0

hmm weird는 비슷한 오류가 있습니다. "make : *** 대상을 '% (OBJ)'로 만드는 규칙이 없습니다. 'all'이 필요합니다. 중지하십시오." – Programmer