2013-05-15 2 views
0

makefile은 .c 파일을 모두 디렉토리에있는 파일로 실행하려고 시도한다. 예를 들어 :메이크 파일은 gcc로 컴파일한다.

am.c 
2.c 
s.c 

am 
2 
s 

프로그램

에.

아무 것도 작동하지만 cc을 사용하지만 gcc 컴파일러를 사용하고 싶습니다. 어떻게하면됩니까?

SRC = $(wildcard *.c) 
BIN = $(patsubst %.c,%,$(SRC)) 

all : $(BIN) 

답변

1

CC = gcc 
+0

감사하고 말하는 정상에 선을 추가 한 당신이 라이브러리를 추가하는 방법을 알고 question.do 더'-L는/usr/lib 디렉토리/NPTL -lpthread -lsocket -lnsl - 그것 안에 lrt'? 그걸로 컴파일하십시오 –

+0

당신은 그것을하기 위해 몇 가지 규칙을 추가해야 할 것입니다. 매우 불충분 한 방법은 CC = gcc -L/usr/lib/nptl -lpthread -lsocket -lnsl -lrt를 지정하는 것이지만, 누군가는 그것을 제안하기까지 나를 화나게 할 것이다 :-) – unxnut

+1

@unxnut : NO !! WTH는 @ # $ @ # $ : P라고 제안하고 있습니다. 환경에 설정되어 있지 않은 경우에만 CC 변수를 덮어 쓰는'CC : = gcc'를 언급 할 수 있습니다. 'make = '는'CC = gcc make'를 실행하여'gcc'를 사용할 수 있습니다. @Alex Gray : 실제로'CFLAGS' 및'LDFLAGS' 변수를 사용할 수 있습니다. 'CFLAGS'는 링크 타임을위한 컴파일 시간 플래그와'LDFLAGS'를 의미합니다. 'CFLAGS = -L/usr/lib/nptl'과'LDFLAGS = -lpthread -lsocket -lnsl -lrt'을 추가하십시오. 이 답이 문제를 해결하는 데 도움이된다면 동의하십시오. 고맙습니다. –

관련 문제