在此感谢同学xu的帮助。
Makefile中内容如下:
##
CC = g++ -g
CFLAGS = -g -O3 -Wall -std=c++11 -I./include
LFLAGS = -g -pthread
##
SRC = $(wildcard src/*.cpp)
SEARCH = $(wildcard src/searchmain/*.cpp)
INDEX= $(wildcard src/indexmain/*.cpp)
OBJS = $(SRC:.cpp=.o)
OBJSEARCH = $(SEARCH:.cpp=.o)
OBJINDEX = $(INDEX:.cpp=.o)
TARGET1 = nass
TARGET2 = nass-index
TARGET3 = test
##
.suffixes:
.cpp
%.o:%.cpp
$(CC) -c $< $(CFLAGS) -o $@
all: $(TARGET1) $(TARGET2)
$(TARGET1): $(OBJS) $(OBJSEARCH)
$(CC) -o $@ $(OBJS) $(OBJSEARCH) $(LFLAGS)
$(TARGET2): $(OBJS) $(OBJINDEX)
$(CC) -o $@ $(OBJS) $(OBJINDEX) $(LFLAGS)
clean:
rm -f *~ */*~ $(OBJS) $(OBJSEARCH) $(OBJINDEX) $(TARGET1) $(TARGET2)

在终端的输入make结果如下:

在终端检查可执行文件是否可以调试:

最后一行表示不可以调试。现在不晓得如何解决,正在百度和必应,Stakflow中给出了类似问题的解决方案,但是没有用,请问谁有解决办法吗?
2021年4月24日 周六 下午3:17
在Makefile中,将以下代码修改为
CFLAGS =-g -Wall -std=c++11 -I./include
原因是:
-O -O2 -O3不能和-g选项联合使用

本文解决了一个在Makefile配置中的常见问题:如何正确设置编译标志以同时实现调试信息的保留和代码优化。通过调整CFLAGS,解决了-g选项与-O3选项之间的冲突。
1019

被折叠的 条评论
为什么被折叠?



