MVS中的SDL奇怪的链接器错误
SDL strange linker error in MVS
我在MVS 2010中尝试将SDL库与一个新的C++Win32控制台应用程序链接时遇到了麻烦。
我下载了最新的SDL开发库,并执行了通常的步骤:
- 将include添加到include路径(pic)[这很好,因为MVS找到了#include文件]
- 添加了SDL的库路径(pic)[这似乎很好,因为删除此附加路径会出现错误"error LNK1104:cannot open file‘SDL.lib’"]
- 将SDL.lib和SDLmain.lib添加到链接器的附加依赖项(pic)
我编辑了主文件以获得一些测试代码,使其看起来像这样:
#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:AllProyectsPFCRT-PongRT-PongRT-PongRT-Pong.obj RT-Pong
Error 2 error LNK1120: 1 unresolved externals D:AllProyectsPFCRT-PongRT-PongDebugRT-Pong.exe 1 1 RT-Pong
如果我有一个损坏的.lib,我从0开始再次下载了整个程序,并得到了相同的结果。老实说,我被难住了,这是一个我忽视的粗心的简单错误。因此,如果有人对这件事有一些新的意见,那将是我的一天。
谢谢,詹姆
我认为您的链接错误是由于"在SDL的库路径中定义了错误的路径"
在Project->Properties->Configuration Properties->Linker->General->Additional Library Directories
从此更改路径:D:AllProyectsPFCRT-PongSDL-1.2.15libx64
进入:D:AllProyectsPFCRT-PongSDL-1.2.15libx86
尝试删除:
#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
请确保链接到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位于我上面列出的位置之一,这应该可以工作。
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误