0

我很难将 SDL 库与 MVS 2010 中的新 C++ Win32 控制台应用程序链接起来。

我下载了最新的 SDL 开发库,并执行了通常的步骤:

  1. 将包含添加到包含路径 ( pic ) [这工作正常,因为 MVS 找到 #include 文件]
  2. 添加了 SDL 的库路径(图片)[这似乎工作正常,因为删除此附加路径会产生错误“错误 LNK1104:无法打开文件'SDL.lib'”]
  3. 将 SDL.lib 和 SDLmain.lib 添加到链接器附加依赖项(图片

我编辑了主文件以获得一些测试代码,使其看起来像这样:

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include "SDL.h"

int _tmain(int argc, _TCHAR* argv[])
{
int a;

SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO);

std::cout << "Pong" << std::endl;
std::cin >> a;

return 0;
}

当我编译时,我得到以下链接器错误:

Error   1   error LNK2019: unresolved external symbol _SDL_Init referenced in function _wmain   D:\All\Proyects\PFC\RT-Pong\RT-Pong\RT-Pong\RT-Pong.obj RT-Pong
Error   2   error LNK1120: 1 unresolved externals   D:\All\Proyects\PFC\RT-Pong\RT-Pong\Debug\RT-Pong.exe   1   1   RT-Pong

如果我有一个损坏的 .lib,我从 0 开始再次下载了整个东西,并得到了相同的结果。老实说,我被难住了,这似乎是我忽略的一个粗心的简单错误。因此,如果有人对此事有一些新的意见,那真的会让我很开心。

谢谢,詹姆

4

3 回答 3

3

我认为由于“在 SDL 的库路径中定义的路径错误”导致链接错误

Project->Properties->Configuration Properties->Linker->General->Additional Library Directories

从此更改路径:D:\All\Proyects\PFC\RT-Pong\SDL-1.2.15\lib\x64

进入这个:D:\All\Proyects\PFC\RT-Pong\SDL-1.2.15\lib\x86

于 2012-07-14T15:02:20.193 回答
0

尝试删除:

#include "stdafx.h"
#include <stdlib.h>

转变:

int _tmain(int argc, _TCHAR* argv[]) 

int main(int argc, char* argv[])

在项目属性中设置为“控制台应用程序”

阅读: http: //lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet2010e/index.php

于 2012-07-14T10:52:46.627 回答
0

确保您正在链接到 lib 文件并确保 SDL.dll 在您的 system32 或 sysWOW64(对于 x64 pc)或您正在从文件夹运行程序的目录中,如果您不确定它们是否已链接,您可以使用以下链接它并确保您的项目设置为控制台。

#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")

并始终记住在完成后正确关闭 SDL 并释放资源:

SDL_Quit();
return 0;

同样,当从您的一般包含文件夹链接时,使用尖括号更安全.. 即:

#include <SDL/SDL.h>

这是一个小示例程序..所以只要 .dll 位于我上面列出的位置之一,这应该可以工作。

于 2012-07-14T14:30:34.753 回答