MinGW + SFML给出错误代码

时间:2015-06-26 06:26:21

标签: c++ mingw clion

我正在使用SFML和MinGW来制作游戏。我正在使用MinGW,因为我已经习惯使用CLion作为我的IDE,因为我已经习惯了JetBrains套件。无论如何,我已经安装了MinGW 4.9.2并获得了相应的SFML并将SFML_ROOT添加到我的环境变量中。现在,无论何时我运行它都会给我:Process finished with exit code -1073741515 (0xC0000135),应用程序显然无法启动。

我的CMakeLists如下:

cmake_minimum_required(VERSION 3.2)
project(airport-simulator)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES
    main.cpp)

add_executable(${PROJECT_NAME} ${SOURCE_FILES} main.cpp)

# SFML
set(SFML_ROOT "${CMAKE_SOURCE_DIR}/sfml")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
find_package(SFML 2 REQUIRED system window graphics network audio)
if (SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES})
endif()

我的main.cpp是:

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "Airport Simulator");
    sf::CircleShape shape(80);
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed) window.close();
        }

        window.clear(sf::Color::Black);
        window.draw(shape);
        window.display();
    }

    return 0;
}

我的文件结构:

Project
|-- .idea
|-- cmake
|   `-- FindSFML.txt
|-- sfml
|-- .gitignore
|-- CMakeLists.txt
`-- main.cpp

我尝试更换SFML库并更新/更改MinGW版本都没有成功。有什么想法吗?

干杯

1 个答案:

答案 0 :(得分:3)

我自己也遇到了类似的问题,只有在CLion IDE之外启动应用程序之后,您实际上才会收到信息错误,这就是您错过了DLL。

如果使用动态库,则必须将DLL复制到工作目录或应用程序旁边。如果您想使用音频模块,也不要忘记复制SFML附带的OpenAL DLL。

我真的希望JetBrains可以在IDE中更好地报告丢失的DLL错误。