【问题标题】:Couldn't find sdl2.dll找不到 sdl2.dll
【发布时间】:2020-01-11 12:22:14
【问题描述】:

我正在尝试使用 sdl2,但是当我尝试运行我的程序时,它给了我一个错误提示

code execution can't proceed because SDL2.dll couldn't be found. try reinstalling [...]

我正在从终端编译,没有任何 IDE(我正在使用 Sublime Text 编写代码)。我的命令是这样的

g++ src\main.cpp -o ..\..\test.exe -L lib\sdl32\lib -l SDL2 -I lib\sdl32\inc -m32

我的文件系统是这样的

我尝试将.exe 文件与lib 文件放在同一目录中,但它不起作用。

我认为问题可能在于它正在寻找 SDL2.dll 文件,并且所有这些文件都是 libSDL2.*,我尝试更改文件名但没有成功。

我还认为问题出在扩展名上,因为它们都在*.dll.a*.a*.la 中,我尝试更改它,但没有成功(我也尝试了两者的组合)。

这是我的main.cpp

#define SDL_MAIN_HANDLED
#include <SDL.h>

int main(int argc, char* argv[]) {
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Window* window = SDL_CreateWindow("Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 450, SDL_WINDOW_SHOWN);
    SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
    SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);

    SDL_RenderClear(renderer);
    SDL_RenderPresent(renderer);

    SDL_Delay(3000);

    SDL_Quit();
    return 0;
}

我是否缺少文件或编译器标志或其他东西?

【问题讨论】:

    标签: c++ dll mingw command-prompt sdl-2


    【解决方案1】:

    libSDL2.dll.a 是一个 import 库。您在编译时使用它来链接代码以将.dll 加载到您的二进制文件中。您仍然需要在运行时拥有包含实际实现的 SDL2.dll 文件。在 Windows 上,.dll 文件在 PATH 中搜索;使用它们的最简单方法是将它们放在包含可执行文件的目录中。

    .dll 文件可供下载on the SDL website,您似乎只有开发文件。

    【讨论】:

    • 开发文件也包含 .dll。
    • @HolyBlackCat 没错,在这种情况下似乎仍然丢失。
    猜你喜欢
    • 2022-08-03
    • 2021-07-25
    • 2020-12-18
    • 2016-04-14
    • 2021-05-19
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多