使用VS的SDL 2.0构建错误

时间:2015-02-18 22:52:53

标签: c++ visual-c++ sdl sdl-2

我关注Lazy Foo's tutorial for getting started with SDL 所以我按照页面上的所有说明进行了编译错误。

这是源代码:

#include <iostream>
#include <SDL.h>


int main(int argc, char *argv[]){
   if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
      std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
      return 1;
   }
   SDL_Quit();

   return 0;
}
Error 1 error LNK2019: unresolved external symbol _SDL_GetError referenced in function _SDL_main
Error 2 error LNK2019: unresolved external symbol _SDL_Init referenced in function _SDL_main
Error 3 error LNK2019: unresolved external symbol _SDL_Quit referenced in function _SDL_main
Error 4 error LNK2019: unresolved external symbol _WinMain@16 referenced in __tmainCRTStartup

我已经仔细检查以确保我的设置正确无误。

配置属性&gt; VC ++目录&gt;包括目录

C:\Users\Minkai\Documents\Visual Studio 2013\Projects\SDL2-2.0.3\include;$(IncludePath)

配置属性&gt; VC ++目录&gt;图书馆目录

C:\Users\Minkai\Documents\Visual Studio 2013\Projects\SDL2-2.0.3\lib\x64;$(LibraryPath)

配置属性&gt;链接器&gt;输入&gt;附加依赖

SDL2.lib;SDL2main.lib;%(AdditionalDependencies)

配置属性&gt;链接器&gt;系统&gt;子系统 我尝试在Window和Console之间切换,不起作用。

我把SDL2.dll放在项目的任何地方只是为了确保。

一些信息:

  1. 使用最新的SDL SDL2-devel-2.0.3-VC.zip
  2. IDE是适用于Windows桌面的Microsoft Visual Studio Express 2013 版本12.0.31101.00更新4
  3. 操作系统是64位Windows 8.1

2 个答案:

答案 0 :(得分:0)

要使用VS2013构建x64 SDL 2.0应用程序,您需要创建平台并从项目属性中设置以下内容:

1 - “项目属性” - &gt; “配置管理器” - &gt; “Active solution platform”下拉菜单,选择“&lt; New ...&gt;”

2 - 在“新解决方案平台”对话框中,在“输入或选择新平台”下拉菜单中选择“x64”

3 - 在同一个对话框中,在Win32上保留“复制设置”,勾选“创建新项目平台”复选框

注意:在这3个步骤之后,此项目的VC ++目录将全部正确设置为x64风格(在项目设置中检查VC ++目录)。

4 - 确保(或设置)“C / C ++” - &gt; “一般” - &gt; “其他包含目录”包含“SDL / include”文件夹的路径

5 - 确保(或设置)您的“链接器” - &gt; “一般” - &gt; “其他库目录”包含“SDL / lib / x64”文件夹的路径

6 - 确保(或设置)您的“链接器” - &gt; “输入” - &gt; “附加依赖项”包含“SDL2.lib;”和“SDL2main.lib;”

7 - 你的样本现在应该编译和链接。确保您的可执行文件可以访问“SDL / lib / x64 / SDL2.dll”(例如,将其粘贴到您的exe上)以便运行它

HTH

答案 1 :(得分:-1)

要运行 SDL Program ,您需要在目录设置中添加包含库并在您的代码中包含这一行:

#define SDL_MAIN_HANDLED