如果我在运行 Makefile 时遇到此错误,我将不胜感激。在我将它分成不同的文件之前,我的代码编译得很好。
我有 main.c 文件,其中包含主要功能和“color.h”。其他文件是 color.h 和 color.c 。Color.c 也包含 color.h。这是我的第一个 Makefile,我已经阅读了很多关于它的主题和主题,所以如果我错了,请纠正我。
这是 Makefile
CC = g++
CPPFLAGS = `pkg-config opencv --cflags`
LDFLAGS = `pkg-config opencv --libs`
ARCH = -arch x86_64
DEPENDENCIES = main.o color.o
# FINAL OUTPUTS
main: $(DEPENDENCIES)
$(CC) $(ARCH) $(LDFLAGS) -o $(DEPENDENCIES)
# MODULES
main.o: main.c color.h
$(CC) $(ARCH) $(CPPFLAGS) -c main.c
colorOps.o: color.c
$(CC) $(ARCH) $(CPPFLAGS) -c colorOps.c
# CLEAN
clean:
-rm main $(DEPENDENCIES)
这是我得到的错误
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [main] Error 1
我在 Mac OS X 10.8.4 上运行通过 Macports 安装的 OpenCv,正如我所说,在我分离文件之前一切正常。
非常感谢!