2015-01-15 2 views
1

두 개의 .cpp 파일을 한 번에 컴파일하려고합니다. gstapp.cpp가 컴파일되고 gnew.cpp가 무시됩니다. 나는 무엇을 바라보고 있습니까?Makefile을 통해 2 개의 파일을 컴파일 할 수 없습니다.

메이크 :

# generated from pkg-config --cflags gstreamer-0.10 
CFLAGS=-pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 

# generated from pkg-config --libs gstreamer-0.10 
LDFLAGS=-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -pthread -lgthread-2.0 -pthread -lglib-2.0 -lxml2 -lgstapp-0.10  

CFLAGS+=-I/usr/include/opencv2 

# there are more, but not needed form now: -lopencv_calib3d -lopencv_contrib -lopencv_flann -lopencv_obj 
LDFLAGS+=-lstdc++ -lopencv_core -lopencv_features2d -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_video 

gstapp: gstapp.o 
    gcc $(LDFLAGS) -o [email protected] $< 

gstapp.o: gstapp.cpp 
    gcc -c $(CFLAGS) -o [email protected] $< 

gnew: gnew.o 
    gcc $(LDFLAGS) -o [email protected] $< 

gnew.o: gnew.cpp 
    gcc -c $(CFLAGS) -o [email protected] $< 

답변

2

당신은 아마 all 규칙이 모두 컴파일을 트리거합니다. 인수없이 make을 실행하면 처음 만나는 규칙 (예 :)이 실행되고 종료됩니다.

그래서 LDFLAGS와 gstapp 라인

all: gstapp gnew 

을 넣어 사이에이 최초의 (디폴트의 일명) 규칙은 다음 종속성이 같은 두 파일을 컴파일합니다 모두 당신은 make 또는 make all을 실행할 때.

관련 문제