SDL DevC ++链接器问题

时间:2013-04-12 13:40:59

标签: c++ sdl dev-c++

我启动了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;    
}

发生这种情况 - >

  搜索-lSDLmain时,

c:\ program files(x86)\ dev-cpp \ mingw64 \ x86_64-w64-mingw32 \ bin \ ld.exe跳过不兼容的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

     搜索-lSDLmain时,

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

     

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

     

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不兼容。

3 个答案:

答案 0 :(得分:0)

  

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

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

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

或者尝试使用x86版本的Dev。同样,IIRC -lSDLmain应该出现在-lSDL之前,而在Windows上,您需要添加-lmingw32才能使其链接并正常运行。

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

./configure
mingw32-make

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

开头。