每当我在代码块中创建一个新文件或类并包含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)都在同一个文件夹中。
答案 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>
尖括号必须包含要搜索的标题名称, 没有别的。如果它们包含剩余空间,那么剩余空间 空格被视为标题名称的一部分。