Всякий раз, когда я создаю новый файл или класс в блоках кода и включаю заголовок Graphics или любой заголовок sfml, компилятор не говорит об этом файле или директории.
Когда я работаю над одной файловой программой, отлично работает, но когда я создаю новый файл и включаю файл в тот же проект, компилятор начинает показывать ошибки.
Он показывает эту ошибку:
E:\codes\sfml_project\main.cpp: 1: 29: фатальная ошибка: SFML/Graphics.hpp: нет такого файла или каталога
Я даже попытался установить SFML 2.1
снова и связать все файлы с CodeBlocks, но это бесполезно.
Пожалуйста, помогите мне, я пытался выяснить ошибку в течение 2 дней, но не смог ее исправить.
Сначала я создал проект в кодовых блоках, который содержит файл 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;
}
это отлично работает, тогда я создал новый класс World и из file-> new-> class в кодовых блоках и включил файл 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) находятся в одной папке.
Кроме того, хотя это может показаться глупым, убедитесь, что вы также установили пакет dev.
На дебианской ОС: sudo apt-get install libsfml-dev
Он отличается от остальных SFML. Я столкнулся с тем же вопросом, и это было моим недосмотром. Счастливое кодирование!
Ваш компилятор представляется GCC. Предполагая, что SFML/Graphics.hpp
действительно находится в путях include-search компилятора, тогда ваша проблема возникает из-за кодирования:
#include < SFML/Graphics.hpp >
вместо:
#include <SFML/Graphics.hpp>
Скобки в квадратных скобках должны содержать имя заголовка для поиска, и ничего больше. Если они заключают избыточные пробелы, то избыточные пробелы считаются частью заголовка.