如何在makefile中指定路径

citylove 2012-03-23 04:52:31
RT. 我现在在写makefile. 文件结构是这样的: 整个工程是一个文件夹, 包含"source"(C文件夹), "include"(头文件夹)文件夹和makefile文件.也就是说makefile是和两个文件夹处于平行结构
我现在不知道怎么在makefile中指定C文件和头文件的路径.
请大侠赐教
...全文
803 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
citylove 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq120848369 的回复:]

引用 6 楼 citylove 的回复:
引用 4 楼 qq120848369 的回复:

这样就行了。C/C++ code
CC = gcc

DIST = main
CFLAGS = -g -pg
LIBS = -g -pg
SOURCES = $(wildcard *.c)
OBJS = $(SOURCES:%.c=%.o)

all:$(OBJS)
gcc -o……
[/Quote]
其实我想问的是后面的“-g -pg”是干什么的
citylove 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 aijianmeng 的回复:]

引用 3 楼 joeblackzqq 的回复:

头文件所在目录用-I选项添加,具体搜索“gcc编译选项"

+1.
INC_DIR=./include
指定头文件目录时用编译器的-I参数,-I$(INC_DIR)
[/Quote]
如果我还需要包含别人的头文件,并且是放在其他路径下,这个该怎么办呢?
可以用 INC_DIR +=./(其他路径) 这样么???
citylove 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qq120848369 的回复:]

这样就行了。C/C++ code
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……
[/Quote]
CFLAGS = -g -pg
LIBS = -g -pg
这两句是干什么的?求赐教
qq120848369 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 citylove 的回复:]
引用 4 楼 qq120848369 的回复:

这样就行了。C/C++ code
CC = gcc

DIST = main
CFLAGS = -g -pg
LIBS = -g -pg
SOURCES = $(wildcard *.c)
OBJS = $(SOURCES:%.c=%.o)

all:$(OBJS)
gcc -o $(DIST) $(OBJS) $(LIBS……
[/Quote]

CFLAGS是编译选项.
LIBS是链接选项.

这个makefile的特点就是隐式编译, 显示链接, 很强大的
qq120848369 2012-03-24
  • 打赏
  • 举报
回复
这样就行了。
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)
JoeBlackzqq 2012-03-24
  • 打赏
  • 举报
回复
头文件所在目录用-I选项添加,具体搜索“gcc编译选项"
aijianmeng 2012-03-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 joeblackzqq 的回复:]

头文件所在目录用-I选项添加,具体搜索“gcc编译选项"
[/Quote]
+1.
INC_DIR=./include
指定头文件目录时用编译器的-I参数,-I$(INC_DIR)
citylove 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arnold9009 的回复:]

设置变量,如:
OBJ_DIR = ./objs
SRC_DIR = ./src

指定目标文件:
OBJS = \
$(OBJ_DIR)/aaa.o \
$(OBJ_DIR)/bbb.o

后面对于生成.o文件:
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
[/Quote]
但是头文件怎么办呢?
不可能一个一个加吧?
能用vpath 么?我用了,但是有报错,没用对
Arnold9009 2012-03-23
  • 打赏
  • 举报
回复
设置变量,如:
OBJ_DIR = ./objs
SRC_DIR = ./src

指定目标文件:
OBJS = \
$(OBJ_DIR)/aaa.o \
$(OBJ_DIR)/bbb.o

后面对于生成.o文件:
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧