关于makefile中g++参数的问题

CHID 2011-12-26 01:07:11
在编译时,g++ 的-g参数没有起作用,无法生成调试信息,应该怎么写?
makefile文件如下:
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o

edit : $(objects)
g++ -g -o edit $(objects)

main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h

.PHONY : clean
clean :
rm edit $(objects)
...全文
262 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHID 2011-12-27
  • 打赏
  • 举报
回复
已解决,多谢了。
一叶之舟 2011-12-26
  • 打赏
  • 举报
回复
DEST = objects
OBJS = main.o kbd.o command.o display.o insert.o search.o files.o utils.o

CC = gcc
CPPFLAGS = -O2 -Wall -D_BSD_SOURCE
SHAREFLAGS = -shared -fPIC
INCLUDES = -I
LIBS = -L

.PHONY : build rebuild clean install

#part build
build : $(DEST)

$(DEST) : $(OBJS)
# $(CC) $(CPPFLAGS) $(SHAREFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
$(CC) $(CPPFLAGS) $(SHAREFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)

.c.o:
$(CC) $(CPPFLAGS) $(INCLUDES) -c $<

不需要每一个目标代码都要写,
要编译几个cpp文件,就在
OBJS = main.o kbd.o command.o display.o insert.o search.o files.o utils.o
中加一个.o就可以了。
CHID 2011-12-26
  • 打赏
  • 举报
回复
请问楼上,生成每一个目标代码都要写一行吗,是不是这样写:
main.o : main.c defs.h
g++ -g -c main.c

kbd.o : kbd.c defs.h command.h
g++ -g -c kbd.c

有没有简单一下的方法?
xunxun 2011-12-26
  • 打赏
  • 举报
回复
因为你没加源码……

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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