未定义对 class 的引用,尽管将其设为 public 并实施
Undefined reference to class, despite making it public and implementing
我有一个小项目,由一个主文件 (main.cpp
) 组成,我刚刚在其中添加了一个新函数,还有一个 class pojemnik 定义在 header (pojemnik.h) 和一个单独编译的源文件 (pojemnik.cpp
)。
我使用生成文件。这里摘录:
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
这是我的 link 到 GitHub,我的所有代码都可用,以防上面的元素不够用。
当我尝试编译它时,出现以下错误:
obj/main.o: In function `zapiszDoPojemnika(unsigned int)
undefined reference to `pojemnik::pojemnik(int)
undefined reference to `pojemnik::zapisz(int)
undefined reference to `pojemnik::zwroc_rozmiar()
undefined reference to `pojemnik::~pojemnik()
undefined reference to `pojemnik::~pojemnik()
我已经实现了所有功能的方法。在我创建该函数之前,一切都在正确编译。你能指出我犯的错误吗?
问题来自您的 makefile:
program: obj obj/main.o obj/pojemnik.o
g++ obj/main.o -o program
您在命令中忘记了 obj/pojemnik.o
,因此 g++ 将尝试不使用 link。这就是为什么它没有找到 pojemnik class 的任何符号的原因。
我有一个小项目,由一个主文件 (main.cpp
) 组成,我刚刚在其中添加了一个新函数,还有一个 class pojemnik 定义在 header (pojemnik.h) 和一个单独编译的源文件 (pojemnik.cpp
)。
我使用生成文件。这里摘录:
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
这是我的 link 到 GitHub,我的所有代码都可用,以防上面的元素不够用。
当我尝试编译它时,出现以下错误:
obj/main.o: In function `zapiszDoPojemnika(unsigned int)
undefined reference to `pojemnik::pojemnik(int)
undefined reference to `pojemnik::zapisz(int)
undefined reference to `pojemnik::zwroc_rozmiar()
undefined reference to `pojemnik::~pojemnik()
undefined reference to `pojemnik::~pojemnik()
我已经实现了所有功能的方法。在我创建该函数之前,一切都在正确编译。你能指出我犯的错误吗?
问题来自您的 makefile:
program: obj obj/main.o obj/pojemnik.o
g++ obj/main.o -o program
您在命令中忘记了 obj/pojemnik.o
,因此 g++ 将尝试不使用 link。这就是为什么它没有找到 pojemnik class 的任何符号的原因。