使用GCC编译游戏时出错.(错误:将"Screen"的含义从"class Screen&q
Getting errors when compiling game with GCC. (error: changes meaning of ”Screen” from ”class Screen” [-fpermissive])
屏幕.h
#ifndef SCREEN_H
#define SCREEN_H
#include <SFML/Graphics.hpp>
class Screen
{
public:
virtual void handleInput(sf::RenderWindow& window) = 0;
virtual void update(sf::Time delta) = 0;
virtual void render(sf::RenderWindow& window) = 0;
};
#endif
Game.h
#ifndef GAME_H
#define GAME_H
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <vector>
#include <memory>
#include "Screen.h"
namespace sfSnake
{
class Game
{
public:
Game();
void run();
void handleInput();
void update(sf::Time delta);
void render();
static const int Width = 640;
static const int Height = 480;
static std::shared_ptr<Screen> Screen;
private:
sf::RenderWindow window_;
sf::Music bgMusic_;
static const sf::Time TimePerFrame;
};
}
#endif
我对这两个标题有意见。代码在visualstudio中编译得很好,但在GCC中编译不好。
我得到错误:
Description Resource Path Location Type
error: changes meaning of ”Screen” from ”class Screen” [-fpermissive] Screen.h /Snake line 6 C/C++ Problem
error: declaration of ”std::shared_ptr<Screen> sfSnake::Game::Screen” [-fpermissive] Game.h /Snake line 28 C/C++ Problem
我四处寻找了一段时间,还没有找到解决办法。我真的很失落。。。此外,这不是我的代码,它是由reddit上的用户"jh1997sa"编写的。github上的源代码。他在reddit上的帖子。
您还没有命名您的平台,但我认为这是运行X11的Linux的某种风格。如果是这样的话,这很可能是与X11/Xlib.h中定义的Screen结构的名称冲突。几乎可以肯定,SFML在幕后使用Xlib与窗口系统交互。
因为Xlib是一个C库,所以它定义的所有符号都位于全局命名空间中。幸运的是,在C++中,您可以选择将Screen类放在自己选择的命名空间中。只要用它的完全限定名称来引用它,就可以避免名称冲突。
据我所知,如果你试图在linux系统上编译,你应该使用g++而不是gcc进行编译。
相关文章:
- 'char (*RtlpNumberOf(T (&)[N]))[N]':无法从"char *"
- Arduino IDE 错误 - 无法找到数字文字运算符"运算符""f900ff"
- "inline"、"constexpr"或"noexcept"
- "非静态数据成员之前需要构造函数" - 我是否使用"boost::variant"
- 我必须安装"libbitcoin-server"才能包含"bitcoin.hpp"
- 如何修复"(Song Title) is not recognized in output screen"
- “并非所有控制路径都返回一个值./&quot“控制可能达到非空隙功能的末端”.验证时循环时
- 如何输出a'&quot在不使用线端的情况下进行文件
- 如何在不将其连接到终端的情况下运行'screen',以便我可以在C++ (qt) 应用程序中捕获输出?
- 删除“按任何键” ..&quot.从VS C 控制台应用程序
- 如何检测我何时向可变参数函数传递"std::string"而不是"c_str()"
- '&lt;'''&lt;'''&quot的模板类错误''令牌”
- OpenGL to DirectX (Buffer To Texture To Screen)
- 如何在 c++ "not whole screen" 的文本模式下清除特定文本?
- OpenGL "black screen"挫败感
- 使用着色器渲染三角形时"vertex colored" OpenGL "black screen"
- OpenCV 2.4.9 Full Screen
- Blank Screen in OpenGL and Glut
- 跟踪/系统调用"Print Screen"进程
- SDL Small Screen