我最近开始学习c++,现在我对c++有点熟悉了。但这是我的第一个SFML程序,我没有任何使用第三方库的经验。我做了我的第一个SFML程序来打开一个窗口。但它没有运行并抛出错误。
main.cpp
#include <iostream>
#include <SFML/Graphics.hpp>
int main() {
sf::Window playground = sf::Window(sf::VideoMode(640, 480), "Sanke");
while (playground.isOpen()) {
sf::Event event;
while (playground.pollEvent(event)) {
switch (event.type) {
case sf::Event::Closed:
playground.close();
break;
}
}
playground.display();
}
return 0;
}
我创建了一个bat文件来运行这个。
main.bat
@echo off
g++ main.cpp -o main.exe -IC:/Users/USER/Desktop/project/SFML-2.5.1/include -LC:/Users/USER/Desktop/project/SFML-2.5.1/lib -lsfml-system -lsfml-graphics -lsfml-window -lsfml-audio -lsfml-network
main.exe
然后我把所有的dll文件放在sfml/bin/到项目目录。当我运行main.bat文件时,它抛出这个错误。
main.exe - Entry Point Not Found
The procedure entry point
_ZNSt15basic_streambuflcSt11char_traitslcEE7seekposESt4fpo
sliEST13_los_Openmode could not be located in the dynamic link library C:\Users\User\Desktop\project\sfml-system-2.dll
我找了好几个小时。但我不知道该怎么解决。甚至有一些教程。任何帮助将不胜感激。
1条答案
按热度按时间sf6xfgos1#
确保您的dll文件在正确的文件夹中。您可以在SFML官方网站https://www.sfml-dev.org/上找到dll文件的位置信息
另外,请确保您使用下面的构造函数创建窗口,而不是您的方式。这也是导致程序崩溃的错误。在这些变化之后,在linux和windows上用g++编译都可以工作。另外,如果您添加了window.hpp文件以确保安全,那就太好了。如果问题仍然存在,很可能是包含路径、库路径或dll路径(简而言之,文件的链接)有问题