编译器在无意义函数中给出错误
Compliler gives error in nonsense function
我正在使用带有MingW的Codeblock IDE,我有一个持续的问题具有以下类型的错误。(文件||消息)
objCEntity.o(.text+0x71a) || In function `ZN7CEntity6OnMoveEff':
或
objCArea.o(.bss+0x0) || In function `ZNSt6vectorI5CTileSaIS0_EEaSERKS2_':
objCApp_OnCleanup.o(.bss+0x0):C:DevCppbin..libgccmingw323.4.2........includec++3.4.2bitsvector.tcc || first defined here
注意,它给出的位置是某种obj文件,所以我不能看看它在我的代码中的位置。
我的C++有了很大的进步,但我仍然不能很好地理解编译器是如何工作的,我不知道可能是什么原因问题或如何解决此类问题。与代码不同问题谷歌真的很难,因为这些名字刚刚扰乱。
希望有人能帮助我,因为这阻碍了我,我就是找不到或者想办法解决!
(我决定不发布我的代码,因为它是许多相互关联的文件,我没有知道错误在哪里,但我正在努力遵循http://www.sdltutorials.com/sdl-tutorial-basics.我能上班的前几天但后来的那些似乎总是失败。这显然是我做错了什么因为当我使用示例时,它是有效的。)
许多GCC发行版(如我使用的MinGW发行版)都带有一个名为c++filt
的实用程序,它将把一个C++损坏的名称变成更接近源代码声明的名称(我认为您的错误消息遗漏了一些下划线):
C:temp>c++filt __ZN7CEntity6OnMoveEff
CEntity::OnMove(float, float)
MSVC附带了一个类似的实用程序:undname
但是,您可能需要更新您正在使用的MinGW。我在返回到MinGW 3.4.5的错误输出中直接得到了漂亮的、未命名的名称(类似于返回到VC++6的MSVC):
class CEntity {
public:
void OnMove(float, float);
};
int main()
{
CEntity ent;
ent.OnMove(1., 2.);
}
使用MinGW 3.4.5:编译
C:temp>g++ -o test.exe test.cpp
C:...ccwlXEih.o:test.cpp:(.text+0x43): undefined reference to `CEntity::OnMove(float, float)'
相关文章:
- 分段错误当我试图运行程序时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 创建 OpenCV 非自由版本 v4.3 时出错,可折叠.cpp错误 C2039、2605
- 制作时出错,C++"db.c:2127:错误:在"||"标记之前应使用";"
- C++语法错误,编译器不会警告或 int v = func(&v) 出错;
- 在VS2015中访问类成员时运行时错误,但在Linux上未访问时出错
- 如何更改路径以修复错误"./main:加载共享库 libmkl_core.so 时出错?
- 为什么在定义类之前声明类的对象会在友元类中给出错误,而在友元函数中不会出错
- 安装 mply 库时出错.致命错误:gsl/gsl_sf.h:没有这样的文件或目录
- Rcpp/C++/R:比较日期时间矢量与日期时间时出错(错误:"运算符>"的不明确重载)
- 编译特征程序时出错:错误:'seq'不是'Eigen'的成员
- 可能的 GCC 链接器错误会导致将弱符号和局部符号链接在一起时出错
- 非标准语法;使用 '&' 创建指向成员的指针错误,将成员函数分配给向量时出错
- 运算符重载时出错(错误:"运算符<<不匹配(操作数类型为"std::basic_ostream<char>"和"const char [2]")
- 编译类 C++ 中的线程时出错(错误 xthread)
- 加载GLEW库时出错(错误LNK2001)
- 通过函数指针调用函数时出错(错误C2064)
- 编译core.obj时出错:错误LNK2001:未解析的外部符号_harmony_core_init
- 链接c++静态库与android ndk时出错(错误:无法识别文件格式)
- 使用GCC编译游戏时出错.(错误:将"Screen"的含义从"class Screen&q