c++ - 为什么我的 .cpp 文件没有被处理?

标签 c++ makefile compilation undefined-reference

我正在尝试编译(制作)游戏源,似乎我的 gRace.cpp 文件被排除在外,因为它不断为我的所有 gRace 类方法返回 undefined reference 错误。

libtron.a(libtron_a-gGame.o): In function `gGame::StateUpdate()':
gGame.cpp:(.text+0x99e9): undefined reference to `gRace::Reset()'
libtron.a(libtron_a-gGame.o): In function `gGame::Analysis(float)':
gGame.cpp:(.text+0xad48): undefined reference to `gRace::Sync(int, int, int)'
gGame.cpp:(.text+0xad4d): undefined reference to `gRace::Done()'
gGame.cpp:(.text+0xad61): undefined reference to `gRace::Winner()'
gGame.cpp:(.text+0xb786): undefined reference to `gRace::End()'
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::OnEnter(gCycle*, float)':
gWinZone.cpp:(.text+0x9206): undefined reference to `gRace::ZoneHit(ePlayerNetID*)'
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::gWinZoneHack(eGrid*, eCoord const&, bool)':
gWinZone.cpp:(.text+0xda96): undefined reference to `gRace::NewZone(gWinZoneHack*)'
libtron.a(libtron_a-gWinZone.o): In function `gWinZoneHack::gWinZoneHack(eGrid*, eCoord const&, bool)':
gWinZone.cpp:(.text+0xdcc6): undefined reference to `gRace::NewZone(gWinZoneHack*)'
collect2: ld returned 1 exit status

我通过以下方式将 gRace.h 文件包含在两个文件中:

#include "gRace.h"

关于可能导致其无法处理的任何想法?

最佳答案

不包含头文件会导致未定义函数编译器错误。这些是链接器错误,这意味着实际的源文件未与其他文件链接(也就是说,它与您是否在正确的位置包含 gRace.h 无关) 。检查您的构建脚本以确保 gRace.cpp 正确链接

关于c++ - 为什么我的 .cpp 文件没有被处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3287472/

相关文章:

c++ - 在 boost::asio 中清除来自串口的输入数据

linux - 为什么 cmake 在我的构建目录中创建 'source' 目录?

c++ - 使用 gcc 链接库在 Ubuntu 中编译 C++ 代码

c++ - rdbuf()->str() 在哪里?

c++ - Object obj = Object() 和 Object obj() 有什么区别?

c++ - 还有其他选择吗?

makefile - Makefile 先决条件中的目标名称

c - Makefile 没有那个文件或目录

visual-studio - DACPAC代表什么?

Java反编译->重新编译的过程,安全吗?