我启动了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.a
和libSDL.dll.a
不兼容。
答案 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)
开头。