1

我开始了lazyfoo SDL教程(http://lazyfoo.net/SDL_tutorials/lesson01/windows/devcpp/index.php),我完全按照所写的安装说明进行操作,但是当我编译它时-->

#include "SDL/SDL.h"

int main( int argc, char* args[] )
{
   //Start SDL
   SDL_Init( SDL_INIT_EVERYTHING );

   //Quit SDL
   SDL_Quit();

   return 0;    
}

发生这种情况-->

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDLmain 时跳过不兼容的 C:/SDL-1.2.15/lib/libSDLmain.a

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDLmain 时跳过不兼容的 C:/SDL-1.2.15/lib\libSDLmain.a

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDLmain 时跳过不兼容的 C:/SDL-1.2.15/lib/libSDLmain.a

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 找不到 -lSDLmain

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDL 时跳过不兼容的 C:/SDL-1.2.15/lib/libSDL.dll.a

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDL 时跳过不兼容的 C:/SDL-1.2.15/lib/libSDL.dll.a

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 找不到 -lSDL

C:\SDL Tutorial Projects\collect2.exe [错误] ld 返回 1 退出状态

我有DevC++ 5.4.1并且我正在尝试安装SDL-devel-1.2.15-mingw32.tar.gz

这和我的问题有关系吗?

我已经尝试了一切,它只是说跳过不兼容的libSDLmain.alibSDL.dll.a

4

3 回答 3

0

您应该使用 MinGW 安装 32 位的 Dev-C++ 并使用此选项来使用 SDL

于 2014-08-08T17:35:24.530 回答
0

c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\bin\ld.exe 在搜索 -lSDLmain 时跳过不兼容的 C:/SDL-1.2.15/lib/libSDLmain.a

您可能有不兼容的二进制文件。为什么要使用 x64 编译器?尝试安装MinGW并使用原始 gcc 进行编译。

如果您尝试这样做,请将 MinGW/bin 添加到您的路径并运行gcc 'filelocation' -lmingw32 -lSDLmain -lSDL

或者尝试使用 x86 版本的 Dev。此外,IIRC-lSDLmain应该出现在 Windows 之前-lSDL和 Windows 上,您需要添加-lmingw32它才能链接并正常工作。

如果这一切都失败了,一种肯定的方法是获取相同的 MinGW 并使用 msys 自己编译SDL .. 只需更改目录并运行

./configure
mingw32-make
于 2013-04-12T16:03:51.310 回答
0

我认为这是因为您正在尝试使用 32 位二进制文​​件编译 64 位应用程序。您需要做的就是设置一个标志以将您的应用程序编译为 32 位应用程序,例如 gcc(或 g++)main.cpp -o -m32,或者,如果您使用的是 CMAKE 添加

set(CMAKE_C_FLAGS -m32)
set(CMAKE_CXX_FLAGS -m32)

一开始。

于 2021-06-28T09:42:08.100 回答