ruiwenz 2015-08-04 01:07
浏览 3655

通过MakeFile文件了解项目目录结构,编写CMake的CMakelist.txt文件方法。

主项目:
CC = gcc
CFLAGS += -O3
BIN_DIR = ./bin
SRC_DIR = ./src
DOC_DIR = ./docs
INC_DIR = ./include
LIB_DIR = ./lib
BIN = siftfeat match dspfeat

all: $(BIN) libopensift.a docs

docs:
doxygen Doxyfile

libopensift.a:
make -C $(SRC_DIR) $@

$(BIN):
make -C $(SRC_DIR) $@

clean:
make -C $(SRC_DIR) $@; \
make -C $(INC_DIR) $@; \

distclean: clean
rm -f $(LIB_DIR)/*
rm -f $(BIN_DIR)/*

docsclean:
rm -rf $(DOC_DIR)/html/

.PHONY: docs clean docsclean libopensift.a

scr文件:
CC = gcc
CFLAGS +=
BIN_DIR = ../bin
INC_DIR = ../include
LIB_DIR = ../lib
INCL = -I$(INC_DIR) pkg-config --cflags opencv gtk+-2.0
LIBS = -L$(LIB_DIR) -lopensift -lm pkg-config --libs opencv gtk+-2.0
OBJ = imgfeatures.o utils.o sift.o kdtree.o minpq.o xform.o
BIN = siftfeat match dspfeat

all: $(BIN) libopensift.a

libopensift.a: $(OBJ)
ar rc $(LIB_DIR)/$@ $(OBJ)
ranlib $(LIB_DIR)/$@

siftfeat: libopensift.a siftfeat.c
$(CC) $(CFLAGS) $(INCL) siftfeat.c -o $(BIN_DIR)/$@ $(LIBS)

match: libopensift.a match.c
$(CC) $(CFLAGS) $(INCL) match.c -o $(BIN_DIR)/$@ $(LIBS)

dspfeat: libopensift.a dspfeat.c
$(CC) $(CFLAGS) $(INCL) dspfeat.c -o $(BIN_DIR)/$@ $(LIBS)

imgfeatures.o: imgfeatures.c $(INC_DIR)/imgfeatures.h
$(CC) $(CFLAGS) $(INCL) -c imgfeatures.c -o $@

utils.o: utils.c $(INC_DIR)/utils.h
$(CC) $(CFLAGS) $(INCL) -c utils.c -o $@

sift.o: sift.c $(INC_DIR)/sift.h
$(CC) $(CFLAGS) $(INCL) -c sift.c -o $@

kdtree.o: kdtree.c $(INC_DIR)/kdtree.h
$(CC) $(CFLAGS) $(INCL) -c kdtree.c -o $@

minpq.o: minpq.c $(INC_DIR)/minpq.h
$(CC) $(CFLAGS) $(INCL) -c minpq.c -o $@

xform.o: xform.c $(INC_DIR)/xform.h
$(CC) $(CFLAGS) $(INCL) -c xform.c -o $@

clean:
rm -f *~ *.o core

.PHONY: clean

include文件:
clean:
rm -f *~

.PHONY: clean

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
    • ¥15 onvif+openssl,vs2022编译openssl64