在Eclipse(Windows / MinGW)中设置SDL2

时间:2018-11-01 14:15:37

标签: c++ windows eclipse mingw sdl

编辑

我的问题不是关于undefined reference错误,而是关于 Eclipse中的Toolchain "MinGW GCC" is not detected.错误,以及这两个链接是否链接。


我正在尝试建立SDL环境。我有Eclipse C ++ 2018-2019(v4.8)和64位MinGW编译器。

我已经从网站上下载了文件(头文件和库),并将它们分别放在我的MinGW安装目录中的以下文件夹中:

C:\ Program Files(x86)\ mingw-w64 \ mingw32 \ include \ SDL2
C:\ Program Files(x86)\ mingw-w64 \ mingw32 \ lib

然后,我创建一个新的C ++项目(可执行文件> Hello World C ++项目),然后取消选择“仅在平台上支持时显示项目类型和工具链”,以便能够选择MinGW工具链,如{{ 3}}。

然后我使用属性> C / C ++ Build>设置并添加库

mingw32
SDL2main
SDL2

并还添加了Includes路径

C:\ Program Files(x86)\ mingw-w64 \ mingw32 \ include \ SDL2

然后,在窗口顶部,我注意到一个in this image表示

Toolchain "MinGW GCC" is not detected.

经过一番谷歌搜索后,我发现这可能是因为PATH变量未正确设置。我搜索了变量,发现它包含一长串路径,包括

C:\Program Files (x86)\mingw-w64\mingw32\bin;

这是我发现的每个解决方案都应添加的内容,但警告仍然存在。

然后我构建了项目,并将SDL2.dll复制到与可执行文件相同的文件夹中。

当我尝试构建以下代码时

#include <iostream>
#include <SDL.h>
using namespace std;

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

    if(SDL_Init(SDL_INIT_VIDEO) < 0) {
        cout << "SDL init failed." << endl;
        return 1;
    }

    cout << "SDL Init succeeded." << endl;

    SDL_Quit();

    return 0;

}

要查看我是否已正确完成所有操作,在CDT Build Console中出现以下错误:

Info: Configuration "Debug" uses tool-chain "MinGW GCC" that is unsupported on this system, attempting to build anyway.
Info: Internal Builder is used for build
g++ -o SDLTest.exe "src\\SDLTest.o" -lmingw32 -lSDL2main -lSDL2 
src\SDLTest.o: In function `Z8SDL_mainv':
C:\Users\ilias\Desktop\eclipse-workspace\SDLTest\Debug/../src/SDLTest.cpp:15: undefined reference to `SDL_Init'
C:\Users\ilias\Desktop\eclipse-workspace\SDLTest\Debug/../src/SDLTest.cpp:22: undefined reference to `SDL_Quit'
C:/Program Files (x86)/mingw-w64/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

由于无法检测到此工具链“ MinGW GCC”,因此我不确定是否会收到此错误。错误或因为我弄乱了其他东西。
这是什么,我该如何解决?

0 个答案:

没有答案