Datei "Graphics.hpp" nicht gefunden



  • Die Beispiele stammen aus dem Buch "C++ Einführung" von Ullrich Breymann

    Fehlermeldung:

    E:\Programmierung\C++\Lernen\Buchbeispiele\Grafik>g++ -std=c++14 -o "grafik.exe"
     "grafik.cpp"
    In file included from grafik.cpp:1:0:
    C:/MinGW/SFML/include/SFML/Graphics.hpp:32:27: fatal error: SFML/Window.hpp: No
    such file or directory
    compilation terminated.
    

    Speicherort der Datei "Graphics.hpp"
    C:\MinGW\SFML\include\SFML

    Kompilieren.bat

    g++ -std=c++14 -c "fonts.h" 
    g++ -std=c++14 -o "grafik.exe" "grafik.cpp"
    pause
    

    Grafik.cpp

    #include <SFML/Graphics.hpp>
    #include <iostream>
    #include "fonts.h"
    
    int main()
    {
    	constexpr int sizeX = 800;
    	constexpr int sizeY = 600;
    	sf::RenderWindow window(sf::VideoMode(sizeX, sizeY), "Das Fenster";
    
    	sf::CircleShape kreis(100);
    	kreis.setFillColor(sf::Color(255, 0, 0, 100));
    
    	float x = 0.0;
    	float y = sizeY - 2 * kreis.getRadius();
    
    	kreis.setPosition(x,y);
    	sf::Font font;
    	if(!font.loadFromFile(ArialFontDatei)) 
    	{
    		std::cer << "Font nicht gefunden\n";
    	}
    
    	sf::Text text("Hello", font, 80);
    	text.setColor(sf::Color::Black);
    	text.setPosition(x + 2 * kreis.getRadius(), y);
    	while(window.isOpen())
    	{
    		sf::Event event;
    		while(window.pollEvent(event))
    		{
    			if(event.type == sf::Event::Closed)
    			{
    				window.close();
    			}
    		}
    		window.clear(sf::Color::White);
    
    		window.draw(kreis);
    		windows.draw(text);
    		window.display();
    	}
    }
    

    fonts.h

    #ifndef FONTS_H
    #define FONTS_H
    #ifdef WIN32
    constexpr const char* ArialFontDatei = "C:/Windows/Fonts/arial.ttf";
    // Rest aus Beispieldatei für andere Betriebssysteme und deswegen weggelassen
    #endif
    #endif
    

    Für Fehleranalysen eurerseits wäre ich sehr dankbar!



  • In dem Buch steht das include für Graphics.hpp so mit dem ganzen Pfad drin?

    Richtig wäre wohl SFML/Graphics.hpp, der Rest wird dem Compiler mit -I "der Rest" übergeben.



  • Setzt ein Includeverzeichnis auf C:/MinGW/SFML/include/

    In deine Datei benutzt du dann #include <SFML/Graphics.hpp>.

    Dann sollte es funktionieren.



  • Entschuldigung, Nein, ich hatte ursprünglich mit der Pfadangabe
    <SFML/Graphics.hpp> gearbeitet, und es hat nicht funktioniert,
    diese absolute Pfadangabe war nur eine Verzweiflungstat von mir, ich habe es abgeändert



  • Ich brauche immer noch Hilfe 😞



  • Du musst den Includepath dem Compiler mitteilen.



  • Dexter1997 schrieb:

    Ich brauche immer noch Hilfe 😞

    Nein



  • du musst mit -IC:/MinGW/SFML/include compilieren, und außerdem mit -LC:/MinGW/SFML/lib und -lsfml-graphics -lsfml-window -lsfml-system linken.

    eine datei fonts.h wird nicht einzeln übersetzt, weil sie includiert wird!

    ruf doch mal make im Verzeichnis kap7 auf, dann wird alles übersetzt. dabei werden sämtliche einstellungen angezeigt.

    genaues lesen hilft.



  • Alles klar, vielen Dank, ich werde das so machen wie von euch beschrieben 🙂


Anmelden zum Antworten