当我尝试使用异常[CodeBlocks,C++]时,会导致名称篡改
Get name mangling when I try to use exceptions [CodeBlocks, C++]
我第一次尝试使用异常但即使这是一个非常简单的例子只是无法编译它,我已经看了在几个例子中,并尝试将其编码很多很多不同的方式但我仍然不确定具体在哪里问题是因为我的名字被篡改了不管怎样,当我介绍接球/尝试/投球时这是我的代码,希望它是什么真愚蠢:)
#include "Surface.h"
#include "SDL_Image.h"
using namespace std;
SDL_Surface* surface::Load(string fileName){
SDL_Surface* loadedSurface = IMG_Load(fileName.c_str());
if(loadedSurface == 0) throw 0;
//Convert surface to same format as display
loadedSurface = SDL_DisplayFormatAlpha(loadedSurface);
return loadedSurface;
}
#include "GameState.h"
#include "Surface.h"
#include<iostream>
using namespace std;
GameState::GameState(string fileName){
try{
stateWallpaper_ = surface::Load(fileName);
}
catch(int& e){
cerr << "Could not load " << fileName << endl;
}
}
提前感谢您的帮助!
编辑:对不起,我忘了发布错误消息:这是
In function `ZN14GameStateIntroC1Ev':|
-undefined reference to `__gxx_personality_sj0'|
-undefined reference to `_Unwind_SjLj_Register'|
-undefined reference to `_Unwind_SjLj_Unregister'|
In function `ZN14GameStateIntroC1Ev':|
undefined reference to `_Unwind_SjLj_Resume'|
In function `ZN14GameStateIntroC2Ev':|
-undefined reference to `__gxx_personality_sj0'|
-undefined reference to `_Unwind_SjLj_Register'|
-undefined reference to `_Unwind_SjLj_Unregister'|
objReleaseGameStateIntro.o||In function `ZN14GameStateIntroC2Ev':|
C:Program Files (x86)CodeBlocksMinGWbin..libgccmingw323.4.5........includec++3.4.5extnew_allocator.h|69|undefined reference to `_Unwind_SjLj_Resume'|
C:MinGWliblibSDLmain.a(SDL_win32_main.o)||In function `redirect_output':|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|219|undefined reference to `SDL_strlcpy'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|220|undefined reference to `SDL_strlcat'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|243|undefined reference to `SDL_strlcpy'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|244|undefined reference to `SDL_strlcat'|
C:MinGWliblibSDLmain.a(SDL_win32_main.o)||In function `console_main':|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|296|undefined reference to `SDL_strlcpy'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|301|undefined reference to `SDL_GetError'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|312|undefined reference to `SDL_SetModuleHandle'|
C:MinGWliblibSDLmain.a(SDL_win32_main.o)||In function `WinMain@16':|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|354|undefined reference to `SDL_getenv'|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|386|undefined reference to `SDL_strlcpy'|
C:MinGWliblibSDLmain.a(SDL_win32_main.o)||In function `cleanup':|
UserssloukenreleaseSDLSDL-1.2.15.srcmainwin32SDL_win32_main.c|158|undefined reference to `SDL_Quit'|
**
从您的错误消息来看,问题与异常无关,而是与您的链接有关。如果使用SDL标头但未链接到SDL库,请使用正确的-L
选项。
相关文章:
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何将strftime中的格式错误作为异常捕获
- 创建具有 new in 函数和"this is nullptr"异常的对象
- 尝试使用智能指针时引发异常
- 函数如何通知用户它基于函数原型抛出异常?
- 是否值得降低我的代码的可读性,以便在出现内存不足错误时提供异常安全性?
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- Pytorch torch.cholesky忽略异常