尽管将其公开并实施,但未明确引用类

时间:2016-03-05 18:09:22

标签: c++ makefile g++ undefined-reference

我有一个由主文件(main.cpp)组成的小项目,其中我刚刚添加了一个新函数,以及在头文件(pojemnik.h)中定义的带有源文件的类pojemnik({{ 1}})单独编译。

我使用makefile。这是一个摘录:

pojemnik.cpp

这是我GitHub的链接,我的所有代码都可用,以防上述元素不足。

当我尝试编译它时,我遇到了以下错误:

program: obj obj/main.o obj/pojemnik.o
    g++ obj/main.o -o program

obj/main.o: src/main.cpp inc/pojemnik.h
    g++ ${CXXFLAGS} -c src/main.cpp -o obj/main.o

obj/pojemnik.o: src/pojemnik.cpp inc/pojemnik.h
    g++ ${CXXFLAGS} -c src/pojemnik.cpp -o obj/pojemnik.o

我已经为所有功能实现了该方法。在创建该函数之前,所有内容都在正确编译。你能指出我犯的错误吗?

1 个答案:

答案 0 :(得分:2)

问题来自你的makefile:

program: obj obj/main.o obj/pojemnik.o
    g++ obj/main.o -o program

您已忘记命令中的obj/pojemnik.o,因此g ++将尝试在没有链接的情况下进行链接。这就是为什么它没有找到pojemnik类的任何符号。