2017-03-18 11 views
0
[email protected]@ 
[email protected][email protected] 
[email protected]@ 

CFLAGS = -pipe -O2 -g `freetype-config --cflags` -c -Wall -Wno-multichar `cat @[email protected]/madlax.specs` 
CPPFLAGS= $(CFLAGS) -Woverloaded-virtual -Wnon-virtual-dtor 

CC  = @[email protected] 
EXE = jpegtranslator 
MLXLIBDIR = @[email protected]/src/kits/objs 

SUBDIR = libjpeg 
SRC := $(SUBDIR)/jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jcdiffct.c \ 
jchuff.c jcinit.c jclhuff.c jclossls.c jclossy.c jcmainct.c jcmarker.c jcmaster.c jcodec.c \ 
jcomapi.c jcparam.c jcphuff.c jcpred.c jcprepct.c jcsample.c jcscale.c jcshuff.c jctrans.c \ 
jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jddiffct.c jdhuff.c \ 
jdinput.c jdlhuff.c jdlossls.c jdlossy.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \ 
jdpostct.c jdpred.c jdsample.c jdscale.c jdshuff.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \ 
jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jmemmgr.c jmemnobs.c jquant1.c jquant2.c \ 
jutils.c 

OBJS = be_jdatadst.o be_jdatasrc.o be_jerror.o JPEGTranslator.o $(SRC) 
OBJDIR := objs 

include @[email protected]/makefile.rules 

all : $(OBJDIR) $(OBJDIR)/$(EXE) 

$(OBJDIR): 
    mkdir $(OBJDIR) -C $(SUBDIR) 

중요한 부분은 $ (OBJDIR) -C $ (SUBDIR)입니다.메이크 파일에 하위 디렉토리를 포함시키는 것이 올바른 방법입니까

+0

서브 디렉토리의 * all * 소스 파일에'$ (SUBDIR) /'접두어를 사용해야한다는 것에주의하십시오. 그리고'OBJS'의 정의에서'$ (SRC)'를 사용하는 것은 잘못된 것입니다. 마지막으로 라이브러리의 모든 소스를 최종 프로그램과 함께 빌드하기 때문에 링크가있는 라이브러리가 없을 것입니다. –

답변

0

첫 번째로 -l 옵션 (소문자 L)은 라이브러리와 연결하기위한 것이며, -L은 경로 추가를위한 것입니다 (예 : -ljpeg). 링커 라이브러리 - 검색 경로 목록에 추가하십시오.

-l을 사용하여 비표준 위치의 라이브러리와 연결하려면 예 : -L이 필요합니다.

-L-l 옵션을 건너 뛰고 대신 라이브러리의 전체 경로를 제공하십시오.