在 C++ 环境中添加 SDL2 库时出现“对‘WinMain@16’的未定义引用”

问题描述 投票:0回答:0

我一直在努力让 SDL2 在我的环境中工作,但没有成功。我正在使用 Windows 10 Home 和 MinGW,在 Eclipse IDE 中为 C/C++ 开发人员工作。

我从这个GitHub存储库下载了SDL2.26.4。

下载并解压文件后,我将 SDL2 include 和 lib 文件的内容复制到 C:\MinGW 中的 MinGW 文件夹中。

在我的 IDE 中,我添加了包含和库路径。

我还包含了其他解决方案建议的一些推荐链接器标志,但它们没有任何影响。

当我运行以下代码时:

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

int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}

...我遇到了错误:

C:\Users\User\eclipse-workspace\SDL2 test\Debug/../src/SDL2 test.cpp:12: multiple definition of `main'
C:\MinGW\lib/libmingw32.a(main.o):(.text.startup+0x0): first defined here
C:\MinGW\lib/libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

我试过重新创建我的项目,将我的包含和库文件夹放在不同的文件位置,禁止 SDL 重新定义我的“主要”功能的不同变体,但没有任何效果。

c++ eclipse sdl-2 undefined-reference multiple-definition-error
© www.soinside.com 2019 - 2024. All rights reserved.