在此感谢同学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选项联合使用