作者gigigigi (gigigigi)
看板LinuxDev
标题[问题] Makefile 一次编译多个执行档
时间Mon May 9 18:46:06 2016
ARM_CC = arm-linux-gnueabi-gcc
CC = gcc
CXX = g++
LDFLAGS = -lm
CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99
0505_OBJS = 0505.o
IFBP_OBJS = IFBP.o
all: 0505 IFBP
0505: ${0505_OBJS}
${CXX} -o $@ $? ${LDFLAGS} ${CFLAGS}
IFBP: ${IFBP_OBJS}
${CXX} -o $@ $? ${LDFLAGS} ${CFLAGS}
clean:
rm -f *.o 0505 IFBP
可以编译过程被拆成两步骤
g++ -c -o 0505.o 0505.cpp
g++ -o 0505 0505.o -lm -Wall -pedantic -ggdb3 -O0 -std=c99
g++ -c -o IFBP.o IFBP.cpp
g++ -o IFBP IFBP.o -lm -Wall -pedantic -ggdb3 -O0 -std=c99
但是像
g++ -c -o 0505.o 0505.cpp
这边编译出来的 0505.o 这时候没有带 -g 参数没debug symbol 无法用gdb
想请问一下要怎麽在这步骤加上-g ?
还有为什麽会被拆成两步骤编译?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.180.117.99
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1462790768.A.C70.html
1F:→ tjjh89017: .c.o: 05/09 19:17
2F:→ tjjh89017: ${CXX} -c ${CFLAGS} $*.cpp 05/09 19:17
3F:→ tjjh89017: .c.o 改成 .cpp.o 05/09 19:17
4F:推 yvb: 应该是改定义 CXXFLAGS (或 CPPFLAGS 亦可). 05/09 22:29
5F:推 Bencrie: %.o: %.cpp 05/09 23:43
6F:→ Bencrie: $CXX -c $< -o $@ $CXXFLAGS 05/09 23:43
7F:→ wens: 上面提到的都是内建rule了,加 CXXFLAGS 就好 05/10 09:59
8F:→ wens: CFLAGS 是编译 C 原始档用, CXXFLAGS 是 C++ 用 05/10 09:59
9F:→ wens: CPPFLAGS 是给 preprocessor 的参数 (如 -I -D 这类的) 05/10 10:00