一、问题描述
开发环境: VS 2013。
之前使用的是SDL 1.2版本的库,现在使用的是2.0版本,在代码中如下引用头文件:
//包含库
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "SDL2/SDL.h"
#include "libswresample/swresample.h"
};
生成时报错:“Error LNK2001 无法解析的外部符号 xxxxx”。
刚开始以为是项目中不能同时存在SDL1.X 和SDL 2.0,于是将SDL 1.X版本的.h,.dll和.lib文件都删除了,结果还是这个错误。最后找到原因是,项目属性的中的连接器中的附加依赖性出错,如图所示:
现在已经是SDL2.lib 和SDL2main.lib了,而附加依赖项里还是原来的SDL.lib SDLmain.lib,所以根本就找不到该函数,于是就会报错。
将附加依赖项改正后,就可以了。关于LNK 2001的错误,还可以参考一下博客:http://blog.csdn.net/shenyulv/article/details/6699836