c++ - Make 不生成调试符号

标签 c++ makefile g++

我有一个 Makefile 作为:

CC = g++

#SNAP DEFINITIONS
SNAP = Snap-2.3
SNAPCORE = $(SNAP)/snap-core
GLIB = $(SNAP)/glib-core
CPPFLAGS += -I $(GLIB) -I $(SNAPCORE)

pagerank_debug.o: pagerank.cpp 
        $(CC) $(CPPFLAGS) -c pagerank.cpp -o pagerank_debug.o

pagerank.o: pagerank.cpp 
    $(CC) $(CPPFLAGS) -c pagerank.cpp

pr_debug: pagerank_debug.o $(SNAPCORE)/Snap.o
    $(CC) -g pagerank_debug.o $(SNAPCORE)/Snap.o -o prd

pr: pagerank.o $(SNAPCORE)/Snap.o
    $(CC) pagerank.o $(SNAPCORE)/Snap.o -o pr

.PHONY: clean 
clean: 
    rm *.o prd

在执行 make pr_debug 时,代码被编译为:

g++ -I Snap-2.3/glib-core -I Snap-2.3/snap-core -c pagerank.cpp -o pagerank_debug.o
g++ -g pagerank_debug.o Snap-2.3/snap-core/Snap.o -o prd

我没有看到任何调试符号。什么可能是潜在问题?

更新的 Makefile(仍然不起作用)

#SNAP DEFINITIONS
SNAP = /Users/myth/Snap-2.3
SNAPCORE = $(SNAP)/snap-core
GLIB = $(SNAP)/glib-core
INCLUDE += -I $(SNAPCORE) -I $(GLIB) 
CPPFLAGS += -c -g -Wall

pagerank_debug: pagerank_undirected.cpp 
        g++ $(INCLUDE) $(CPPFLAGS) pagerank_undirected.cpp -o pagerank_undirected.o

pr_debug: pagerank_debug
        g++ -g pagerank_undirected.o $(SNAPCORE)/Snap.o -o pru

.PHONY: clean all

all: pr_debug
clean: 
    rm *.o pru

最佳答案

-g 标志在编译的时候要加上,所以在CPPFLAGS中加入:

CPPFLAGS += -I $(GLIB) -I $(SNAPCORE) -g

关于c++ - Make 不生成调试符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229960/

相关文章:

c - 当有多个文件时如何运行 C 程序?

c++ - g++ -I 不按指定顺序工作

g++ - 在学习 C++ 时,我应该总是使用带有 g++ 的 -Wall 和 -pedantic 开关吗?

c++ - 如何将字符串转换为 ASCII 值的总和?

c++ - operator+ 重载有什么问题?

c++ - 唯一指针和 3 法则

c++ - 对异步运行并发出信号的命令使用撤消堆栈

linux - 如何为树莓派编译内核模块?

build-process - 指定为对多个规则的依赖时重新执行目标

C++ 跳过代码行?