gpt4 book ai didi

c++ - 我需要有关食人魔相关 header 的帮助(Qgears)

转载 作者:太空宇宙 更新时间:2023-11-04 04:31:13 24 4
gpt4 key购买 nike

我距离编译 Qgears 还差 2 个错误。 (最终幻想 VII 引擎的黑客版本)

我搞乱了预处理器来加载 ogre 头文件的实际位置。

错误如下:

||=== qgears, Debug ===|
/home/cj/Desktop/qgears/trunk/project/linux/src/core/TextManager.h|48|error: invalid use of ‘::’|
/home/cj/Desktop/qgears/trunk/project/linux/src/core/TextManager.h|48|error: expected ‘;’ before ‘m_LanguageRoot’|
||=== Build finished: 2 errors, 0 warnings ===|

这是头文件:

// $Id$

#ifndef TEXT_MANAGER_h
#define TEXT_MANAGER_h

#include <OGRE/OgreString.h>
#include <OGRE/OgreUTFString.h>
#include <map>

struct TextData
{
TextData():
text(""),
width(0),
height(0)
{
}

Ogre::String name;
Ogre::UTFString text;
int width;
int height;
};

typedef std::vector<TextData> TextDataVector;



class TextManager
{
public:
TextManager(void);
virtual ~TextManager(void);

void SetLanguageRoot(const Ogre::String& root);

void LoadTexts(const Ogre::String& file_name);
void UnloadTexts(const Ogre::String& file_name);
const TextData GetText(const Ogre::String& name);

private:
struct TextBlock
{
Ogre::String block_name;
std::vector<TextData> text;
}

Ogre::String m_LanguageRoot; // Line #48
std::list<TextBlock> m_Texts;
};



extern TextManager* g_TextManager;



#endif // TEXT_MANAGER_h

include 中唯一不是 ogre 头文件的头文件是“map”。

如果有帮助,我正在 GNU/Linux 中使用 Code::Blocks IDE/GCC 编译器。 (拱门)

我不确定即使我修复了这个 header ,我想我稍后也会遇到构建错误,但值得一试。

编辑:我添加了分号,头文件中又出现一个错误:

error: expected unqualified-id before ‘{’ token

最佳答案

TextBlock 结构定义在末尾缺少 ;

此外,std::vectorstd::list 在没有适当的#include 的情况下使用。如果它们尚未包含在某些 header 中,也可能会导致构建错误。

编辑:以下代码可以使用 VC 和 Comeau 进行编译:

//#include <OGRE/OgreString.h>
//#include <OGRE/OgreUTFString.h>
namespace Ogre {
struct String { String() {} String(const char*) {} };
struct UTFString { UTFString() {} UTFString(const char*) {} };
}

#include <map>
#include <vector>
#include <list>

struct TextData
{
TextData():
text(""),
width(0),
height(0)
{
}

Ogre::String name;
Ogre::UTFString text;
int width;
int height;
};

typedef std::vector<TextData> TextDataVector;



class TextManager
{
public:
TextManager(void);
virtual ~TextManager(void);

void SetLanguageRoot(const Ogre::String& root);

void LoadTexts(const Ogre::String& file_name);
void UnloadTexts(const Ogre::String& file_name);
const TextData GetText(const Ogre::String& name);

private:
struct TextBlock
{
Ogre::String block_name;
std::vector<TextData> text;
};

Ogre::String m_LanguageRoot;
std::list<TextBlock> m_Texts;
};

extern TextManager* g_TextManager;

您在使用编译器编译此文件时遇到问题吗?

关于c++ - 我需要有关食人魔相关 header 的帮助(Qgears),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com