【发布时间】:2018-09-22 01:34:15
【问题描述】:
我的 C++ 项目中的文件树是这样的:
project/
source/
main.cpp (with int main() function)
a.cpp
a.h
b.cpp
...
obj/
Makefile
但是当我编译它时,它会抛出一个错误:“In function _start': (.text+0x20): undefined reference to main'”
我的makefile是:
EXECUTABLE = name_of_program
CXX = g++
CXXFLAGS = -Wall -Isource
LIBS =
SRC_DIR = source
OBJ_DIR = obj
SRC = $(wildcard $(SRC_DIR)/*.cpp)
OBJ = $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
.PHONY: all clean
all: $(EXECUTABLE)
$(EXECUTABLE): $(OBJ)
$(CXX) -o $@ $^ $(LIBS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
$(CXX) $(CXXFLAGS) -o $@ -c $<
clean:
rm $(OBJ)
我应该纠正哪些事情才能使其正确编译?我知道这是一个编译器错误,但我确定它与 Makefile 有关。
【问题讨论】:
-
看起来应该可以了。当您尝试在命令行上构建可执行文件(例如不使用 Make)时会发生什么?