当前位置: 技术问答>linux和unix
如何在makefile中指定路径
来源: 互联网 发布时间:2017-02-11
本文导语: RT. 我现在在写makefile. 文件结构是这样的: 整个工程是一个文件夹, 包含"source"(C文件夹), "include"(头文件夹)文件夹和makefile文件.也就是说makefile是和两个文件夹处于平行结构 我现在不知道怎么在makefile中指定C文件和...
RT. 我现在在写makefile. 文件结构是这样的: 整个工程是一个文件夹, 包含"source"(C文件夹), "include"(头文件夹)文件夹和makefile文件.也就是说makefile是和两个文件夹处于平行结构
我现在不知道怎么在makefile中指定C文件和头文件的路径.
请大侠赐教
我现在不知道怎么在makefile中指定C文件和头文件的路径.
请大侠赐教
|
设置变量,如:
OBJ_DIR = ./objs
SRC_DIR = ./src
指定目标文件:
OBJS =
$(OBJ_DIR)/aaa.o
$(OBJ_DIR)/bbb.o
后面对于生成.o文件:
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
OBJ_DIR = ./objs
SRC_DIR = ./src
指定目标文件:
OBJS =
$(OBJ_DIR)/aaa.o
$(OBJ_DIR)/bbb.o
后面对于生成.o文件:
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
|
头文件所在目录用-I选项添加,具体搜索“gcc编译选项"
|
这样就行了。
CC = gcc
DIST = main
CFLAGS = -g -pg
LIBS = -g -pg
SOURCES = $(wildcard *.c)
OBJS = $(SOURCES:%.c=%.o)
all:$(OBJS)
gcc -o $(DIST) $(OBJS) $(LIBS)
clean:
rm $(DIST) $(OBJS)
|
CFLAGS是编译选项.
LIBS是链接选项.
这个makefile的特点就是隐式编译, 显示链接, 很强大的