![](/img/trans.png)
[英]Multiple Cmake files and SFML “fatal error: SFML/Graphics.hpp: No such file or directory”
[英]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.