簡體   English   中英

致命錯誤:SFML/Graphics.hpp:不存在這樣的文件或目錄

[英]Fatal error: SFML/Graphics.hpp: no such file or directory exists

我遇到了一個又一個 SFML 問題,但希望它最終是值得的。

這是錯誤:

致命錯誤:SFML/Graphics.hpp:沒有這樣的文件或目錄

和代碼:

#include < SFML/Graphics.hpp >
#include < SFML/Window.hpp >

int main(){
sf::RenderWindow Window;
Window.create(sf::VideoMode(800, 600), "SFML");

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

您需要告訴編譯器在哪里查找SFML頭文件。 這可以通過在編譯器調用中傳遞-I標志來完成:

-I/path/to/SFML/headers

我對此很陌生,但是如果您按照教程進行操作,那么您可能將.hpp文件的路徑設置為/ include,但.hpp文件實際上位於/ include / SFML中

#include <include/SFML/Graphics.hpp>

如果你在 Linux 上,那么這個班輪就是你要走的路:

sudo apt-get install libsfml-dev

在此處的文檔中找到它: https : //www.sfml-dev.org/tutorials/2.1/start-linux.php

如果您碰巧使用windows visual studio命令行編譯器,則include語法為:

/I"path\to\SFML\headers"

我猜你錯了你的附加包含和/或庫。 再次檢查 - 如果問題仍然沒有解決 - 那么確保 - 如果你沒有使用SFML靜態 - 如果SFML DLL文件在正確的目錄中

我個人發現,將整個SFMl文件夾放入C盤是個好主意。

編輯 SFML的一個常見錯誤,鏈接器正在編寫graphic-d.lib而不是graphics-d.lib (在調試模式下)

這可能不正確,但假設您來自與我相同的來源,當您將 SFML 包含文件鏈接到編譯器時,請確保將 -I 命令與文件路徑 (-IC:\\ SFML\\include,而不是 -IC:\\SFML\\include)。 我遇到了同樣的錯誤,這就是我最終修復它的方式。

就我而言,包含路徑都是正確的,但我忽略了指定 SFML 的子目錄; 我放了#include <SFML/Vector2.hpp>而不是#include <SFML/System/Vector2.hpp>

從* <SFML / Graphics.hpp>和* <SFML / Window.hpp>中刪除空格

從* <SFML / Graphics.hpp>和* <SFML / Window.hpp>中刪除空格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM