Sublime Text 2和MinGW的SDL 2.0链接问题

为我们

我在使用mingw在Sublime Text 2中使SDL 2.0为我工作时遇到一些问题。

我正在尝试编译的代码(来自惰性foo的SDL 2.0教程):

#include <SDL2/SDL.h>
#include <stdio.h>

// scrren dimension constraints
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main(int argc, char *argv[]){
    //window
    SDL_Window* window = NULL;
    SDL_Surface* screenSurface = NULL;

    //Initialize sdl
    if(SDL_Init(SDL_INIT_VIDEO) < 0){
        printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    }
    else{
        //create window
        window = SDL_CreateWindow("SDL 1", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
        if (window == NULL){
            printf("Window could not be created! SDL_Error: %s\n", SDL_GetError());
        }
        else
        {
            //Get window surface
            screenSurface = SDL_GetWindowSurface(window);

            //Fill the surface white
            SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );

            //Update the surface
            SDL_UpdateWindowSurface( window );

            //Wait two seconds
            SDL_Delay(2000);
        }
    }
    //destrow window
    SDL_DestroyWindow(window);

    //quit
    SDL_Quit();
    return 0;
}

Sublime文本文件的构建依据:

{
 "path": "D:/MinGW/bin",
 "working_dir": "${file_path}",
 "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}.exe" ,"-std=c++0x", "-lSDL2", "-lSDL2main"],
 "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
 "selector": "source.c, source.c++, source.cpp",

 "variants":
 [
  {
   "name": "Run",
   "working_dir": "${file_path}",
   "cmd": ["${file_base_name}.exe"]
  }
 ]
}

错误消息:

D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x1c): undefined reference to `SDL_Init'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x28): undefined reference to `SDL_GetError'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x71): undefined reference to `SDL_CreateWindow'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x7f): undefined reference to `SDL_GetError'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x9c): undefined reference to `SDL_GetWindowSurface'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0xc5): undefined reference to `SDL_MapRGB'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0xdc): undefined reference to `SDL_FillRect'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0xe7): undefined reference to `SDL_UpdateWindowSurface'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0xf3): undefined reference to `SDL_Delay'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0xfe): undefined reference to `SDL_DestroyWindow'
D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o:main.cpp:(.text+0x103): undefined reference to `SDL_Quit'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: D:\Users\ForUs\AppData\Local\Temp\ccEEP5Hi.o: bad reloc address 0x1b in section `.text$printf[_printf]'
d:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
[Finished in 0.4s with exit code 1]
为我们

我似乎(终于)解决了我的问题。更新到最新版本的MinGW和SDL2.0并进行更改

"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}.exe" ,"-std=c++0x", "-lSDL2", "-lSDL2main"],

 "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}.exe","-lmingw32", "-lSDL2main", "-lSDL2"]

解决了我的问题。感谢所有尝试提供帮助的人的建议。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从终端问题中打开Sublime Text 2

来自分类Dev

从终端问题中打开Sublime Text 2

来自分类Dev

卸载Sublime Text 2

来自分类Dev

查找为Sublime Text 2创建的符号链接,以替换为Sublime Text 3

来自分类Dev

Sublime Text 3'subl'命令仍然链接到Sublime Text 2

来自分类Dev

Sublime Text 2和Emmet和换行

来自分类Dev

sublime text 2命令创建链接,但该命令为空

来自分类常见问题

Sublime Text 2多行编辑

来自分类Dev

如何更新Sublime Text 2?

来自分类Dev

Sublime Text 2构建系统

来自分类Dev

如何更新Sublime Text 2?

来自分类Dev

Sublime Text 2 Terminal插件

来自分类Dev

修复Sublime Text 2括号与> 28 if()-tests匹配的问题?

来自分类Dev

Sublime Text 2-SublimeREPL软件包问题

来自分类Dev

Sublime Text 2-HTML自动完成问题

来自分类Dev

复制模块和Sublime Text2出现了一个奇怪的问题

来自分类Dev

Windows上的MinGW Netbeans 7.0和SDL 2上的链接项目

来自分类Dev

将Sublime Text 2与Karma集成

来自分类Dev

How to run PHP code in Sublime Text 2

来自分类Dev

Sublime Text 2代码提示

来自分类Dev

Sublime Text 2中的多行CoffeeScript REPL

来自分类Dev

Sublime Text 2 PHP高亮显示

来自分类Dev

Sublime Text 2 + Emmet-扩展无效

来自分类Dev

在Sublime Text 2中解包文本

来自分类Dev

如何使用Sublime Text 2(如Notepad ++)

来自分类Dev

Sublime Text 2 + SublimeREPL中的键绑定

来自分类Dev

Sublime Text 2删除唯一的行

来自分类Dev

Sublime Text 2 LatexTools无法启动SumatraPDF

来自分类Dev

Sublime Text 2不同的缩进设置