Makefile-主错误的隐式输入/启动
Makefile - implicit entry/start for main error
我从makefile中得到以下输出。我的主要目标是编译目录中的所有内容。我预计将来会有更多的cpp文件。非常感谢任何提示或建议!
输出:
g++ `pkg-config --libs --cflags opencv libexif` main.cpp -o main.o
g++ `pkg-config --libs --cflags opencv libexif` Image.cpp -o Image.o
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Image.o] Error 1
当前文件列表:main.cpp、Image.h、Image.cpp
这是生成文件:
CC=g++
CFLAGS= `pkg-config --libs --cflags opencv libexif`
LDFLAGS= `pkg-config --libs --cflags opencv libexif`
SOURCES=main.cpp Image.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=CvHelloWorld
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm *.o
根据@5gon12eder的建议,您应该使用'-c'。
.cpp.o:
$(CC) -c $(CFLAGS) -o $@ $<
如果您更早地解释pkg配置结果,调试会更容易:
CFLAGS := $(shell pkg-config --cflags opencv libexif)
LDFLAGS := $(shell pkg-config --libs opencv libexif)
SOURCES := $(wildcard *.cpp)
[…]
.PHONY: clean
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- 如何使重新启动此循环,当用户输入 1 时,并在 0 时停止
- 如果用户只按Enter或输入无效,则C 如何重新启动循环
- 保存“编辑控件”用户输入并在应用程序重新启动C++Visual Studio时进行恢复的有效方法
- 虽然循环未启动显示 5,但从输入开始,C++
- Makefile-主错误的隐式输入/启动
- C++使用<输入文件和>输出文件启动程序
- 虽然不会在 y/n 输入C++后启动循环
- SDL 输入在启动时提供"fake-Events"
- 循环C++以检查错误的输入,并在用户输入正确的输入时再次启动程序