1
我一直试图在病毒强制我重置为出厂状态后,在计算机上设置SDL。使用我的IDE CodeBlocks运行SDL非常简单,但是扩展库的设置并不那么简单。 CodeBlocks识别库的存在,但是在SDL_ttf头文件和SDL_image头文件中给我提供了多个错误。 ,其给我的麻烦的代码的部分是这样的:SDL_TTF标题给我带来麻烦
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
extern "C" {
#endif
第一行生成错误“错误:预期不合格-ID之前字符串常量”,第三行生成上述错误和误差“错误:预计'}'行结束之前”。 我的猜测是,这可能有一些与SDL正在用C写的,也许我的代码块尚未配置为识别C.
编辑:测试的源代码是这样的:
SDL_Surface* imageBlitingFunctions::loadText(Uint8 red, Uint8 blue, Uint8 green, std::string fontname, int fontSize, std::string text)
{
SDL_Color textColor = {red, blue, green};
TTF_Font *font1 = TTF_OpenFont(fontname.c_str(), fontSize);
SDL_Surface *message1 = TTF_RenderText_Solid(font1, text.c_str(), textColor);
return message1;
}
ifdef'ed extern C是使C函数可以从C++调用的非常标准的方法,这完全可以。你正在使用什么编译器?什么是确切的错误消息,什么是测试程序的源代码? – keltar 2014-10-18 10:59:29
我正在使用MinGW。 – TheBlackSword 2014-10-18 20:44:12
是的,我不确定你发布的代码是否是问题。也许这是它之前的事情。无论如何,你应该确保在你的环境中这不是一些错误,你可以尝试创建一个新的C++项目,该项目包含一个声明为extern“C”的简单函数,看看它是否已经扼杀了它。 – PeterT 2014-10-18 21:02:05