2014-10-10 1 views
1

그래서 내 할당은 기본적으로 sorted-list.c 구현을 libsl.a라는 라이브러리로 컴파일하고 Makefile을 실행하는 sl이라는 실행 파일을 Makefile로 만들 것을 요청합니다. main.c의 코드기본 메이크 파일/링크/라이브러리 문제 : 해당 파일이나 디렉토리가 없습니다.

그래서 내가 지금까지 쓴 :이 지금

make 

:

파일 메이크와 함께 내 모든 파일을 포함하는 디렉토리에서
cc=gcc 

sl : main.o sorted-list.o 
    cc -o -g sl main.o sorted-list.o 

main.o : main.c sorted-list.h 
sorted-list.o : sorted-list.c sorted-list.h 

ar : rcs libsl.a sorted-list.o 

clean : 
    rm sl main.o sorted-list.o 

, 나는 터미널에 입력 이 모든 일을 처음으로 했으므로 의도대로 실행되었습니다. 그렇지 않다면 알려주세요.

-bash-4.1$ make 
cc -c -o sorted-list.o sorted-list.c 
cc -o -g sl main.o sorted-list.o 
cc: sl: No such file or directory 
make: *** [sl] Error 1 

에 유래가 다음과 같은 질문이 있습니다 :
Makefile is giving me an error - No such file or directory

이 가장 가까운 질문/솔루션이 될 것 같다,하지만 내 실행 SL 배치 할 나타는 나는 다음과 같은 오류가 발생했다되고 응답이 나타내는대로 올바르게 (플래그 바로 뒤에서). 이 문제는 확실하지 않지만 sl이라는 파일/디렉토리가 없다는 것을 이해합니다. 아직 작성되지 않은 실행 파일의 이름이됩니다.

답변

0

-o 옵션 바로 다음에 실행 파일의 이름을 지정해야합니다.이 옵션의 매개 변수이기 때문입니다. 그래서

cc -g -o sl main.o sorted-list.o 

대신

cc -o -g sl main.o sorted-list.o 

cc(1)의 맨 이런 식으로 뭔가를 읽어야

 
-o output 
    Name the output of the compilation output instead of a.out. 

이 실행 파일의 이름이 -o 옵션에 대한 인수가 있음을 나타냅니다 및 따라서 -o 옵션 바로 뒤에 나타나야합니다.

자세한 내용은 cc(1) 맨 페이지를 참조하십시오.

관련 문제