在创建新文件时,它显示&#34; <sfml graphics.hpp =“”>没有这样的文件或目录&#34; </sfml>

时间:2014-06-14 09:05:39

标签: c++ codeblocks sfml

每当我在代码块中创建一个新文件或类并包含Graphics头或任何sfml头时,编译器都会说没有这样的文件或目录。

当我处理单个文件时,程序工作正常,但是当我创建一个新文件并将该文件包含在同一个项目中时,编译器会开始显示错误。

显示此错误:

  

E:\ codes \ sfml_project \ main.cpp:1:29:致命错误:SFML / Graphics.hpp:没有这样的文件或目录

我甚至尝试再次安装SFML 2.1并将所有文件链接到CodeBlocks但它没用。

请帮帮我,我一直试图找出错误2天,但无法纠正。

我首先在codeblocks中创建了包含main.cpp文件和代码

的项目
    #include < SFML/Graphics.hpp >


    int main()

    {

        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
        sf::CircleShape shape(100.f);
        shape.setFillColor(sf::Color::Green);

        while (window.isOpen())
        {
             sf::Event event;
             while (window.pollEvent(event))
             {
                  if (event.type == sf::Event::Closed)
                  window.close();
             } 

             window.clear();
             window.draw(shape);
             window.display();
        }

        return 0;
   }

这很好用然后我在codeblocks中创建了一个新的类World和file-&gt; new-&gt;类并包含了一个文件SFML / Graphics.hpp

世界级看起来像

World.hpp文件包含代码

    #ifndef WORLD_HPP
    #define WORLD_HPP

    #include < SFML/Graphics.hpp >
    class World
    {
        public:
        World();
        protected:
        private:
    };

    #endif // WORLD_HPP

和World.cpp文件包含

    #include "World.hpp"

    World::World()
    {
         //ctor
    }

此时只有编译器开始显示错误

E:\ codes \ sfml_project \ World.hpp:4:29:致命错误:SFML / Graphics.hpp:没有这样的文件或目录

所有文件(World.hpp,World.cpp,main.cpp)都在同一个文件夹中。

2 个答案:

答案 0 :(得分:1)

此外,虽然这看起来很愚蠢,但请确保您也安装了dev包。

在基于debian的操作系统上: sudo apt-get install libsfml-dev

它与SFML的其他部分不同。我碰到了同样的问题,那是我的疏忽。快乐的编码!

答案 1 :(得分:0)

您的编译器似乎是GCC。假设SFML/Graphics.hpp确实在编译器中 包含搜索路径,然后您的问题来自编码:

#include < SFML/Graphics.hpp >

而不是:

#include <SFML/Graphics.hpp>

尖括号必须包含要搜索的标题名称, 没有别的。如果它们包含剩余空间,那么剩余空间 空格被视为标题名称的一部分。