CFLAGS:=-g -Wall -std=c++11 -fPIC
CXX = g++
LD = g++
SRCS = $(wildcard *.cpp)
OBJS = $(patsubst %.cpp, %.o, $(SRCS))
DIR_SRCS = ./src/
DIR_OBJS = obj
DIR_EXEC = bin
D_SRCS = $(addprefix $(DIR_SRCS),$(SRCS))
# -I指定头文件目录
INCLUDE = -I./include -I/usr/local/include -I/usr/local/include/opencv4 -I/usr/local/include/opencv4/opencv2
# -L指定库文件目录,-l指定静态库名字(去掉文件名中的lib前缀和.a后缀)
LIB = -L./lib -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -fopenmp
# 开启编译warning和设置优化等级
TARGET = output
.PHONY:all clean
all: $(TARGET)
# 链接时候指定库文件目录及库文件名
$(TARGET): $(OBJS)
g++ -o $@ $^ $(LIB)
# 编译时候指定头文件目录
%.o:%.cpp
g++ -shared -g -c $^ $(INCLUDE) $(CFLAGS)
clean:
rm -f $(OBJS) $(TARGET)
第一个原因:开头的路径指定错了没找到文件
第二个原因:通过.o文件,链接生成可执行文件的时候加的-g什么的玩意删了就好了