C++ 未定义引用,假定makefile未使用HeaderFile
导致未定义的引用C++ 未定义引用,假定makefile未使用HeaderFile,c++,makefile,undefined-reference,C++,Makefile,Undefined Reference,导致未定义的引用 CXXFLAGS = -std=c++11 -O2 -g -Wall -fmessage-length=0 OBJS = ProgramEntry.o LIBS = TARGET = Reading $(TARGET): $(OBJS) $(CXX) -o $(TARGET) $(OBJS) $(LIBS) all: $(TARGET) clean: rm -f $(OBJS) $(TARGET)
CXXFLAGS = -std=c++11 -O2 -g -Wall -fmessage-length=0
OBJS = ProgramEntry.o
LIBS =
TARGET = Reading
$(TARGET): $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all: $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)
我认为makefile没有使用任何头文件。如果我为头文件添加一个目录,我可以知道如何修复make文件。它正在使用头文件,否则会出现编译器错误,而不是链接错误 将以下行更改为:
undefined reference to --
或
添加当前目录中的所有对象。它正在使用标题,否则会出现编译器错误,而不是链接错误 将以下行更改为:
undefined reference to --
或
添加当前目录中的所有对象。您只在一个对象文件中链接,因此其他文件中定义的函数不会进入您的程序
将所有
.o
s添加到OBJS
。毕竟,这似乎就是该变量的要点?您只链接了一个对象文件,因此其他文件中定义的函数不会进入您的程序
将所有
.o
s添加到OBJS
。毕竟,这似乎是该变量的要点?在我看来更像是链接器错误。@user1320881这些是链接器错误,但它们可能是由makefile错误引起的(例如,对象文件不重建,因为它不依赖于已更改的标头),在我看来更像是链接器错误。@user1320881这些是链接器错误,但是它们可能是由makefile错误引起的(例如,对象文件不重建,因为它不依赖于已更改的头文件)。是否有方法添加所有*.o文件。因为我可以在目录中添加或删除*.cpp文件。谢谢。是否有方法添加所有*.o文件。因为我可以在目录中添加或删除*.cpp文件。
OBJS = ProgramEntry.o GetNodes.o GetElements.o MeshData.o
OBJS = *.o