【发布时间】:2020-08-01 09:45:03
【问题描述】:
希望你们一切都好。
我目前正在学习opencv(c ++),我正在尝试用一个名为“算法”(.h和.cpp)的类编译一个“main.cpp”,由于某种原因,我在尝试时遇到了这样的错误:
g++ `pkg-config --cflags opencv4` `pkg-config --libs opencv4` src/Algorithms.cpp -o obj/Algorihtms.o -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [makefile:15: obj/Algorithms.o] Error 1
这是我的生成文件:
CFLAGS = `pkg-config --cflags opencv4`
LIBS = `pkg-config --libs opencv4`
B = bin
O = obj
S = src
FLAGS = -c -Wall
all: $(O) $(B) $(B)/main
$(B)/main: $(O)/Algorithms.o
g++ $(FLAGS) -ggdb $(S)/main.cpp -o $(O)/main.o
$(O)/Algorithms.o:
g++ $(CFLAGS) $(LIBS) $(S)/Algorithms.cpp -o $(O)/Algorihtms.o -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs
$(O):
mkdir $(O)
$(B):
mkdir $(B)
clean: $(O) $(B)
rm -rf $(O)
rm -rf $(B)
(安装了Opencv,我知道如果我单独编译“main.cpp”它可以工作,但我不能同时编译“main.cpp”和“算法”类。)
非常感谢。
【问题讨论】:
-
为什么不将
Algorithms.cpp和main.cpp作为主要目标的来源? -
作为菜鸟,我不知道该怎么做。请你有一个非常简单的例子。将不胜感激。
标签: c++ opencv opencv3.0 makefile