将Qt 5.6 集成至 VS2015,并添加ffmpeg和SDL2的库

一、将Qt 5.6 集成至 VS2015vs2015+ffmpeg开发环境配置

参考:将 Qt 5.6 集成至 VS2015

安装完成VS2015后,进行Qt5.6的安装 http://download.qt.io/official_releases/qt/5.6/5.6.0/

我的是5.6.0,64位系统,所以我选择qt-opensource-windows-x86-msvc2015_64-5.6.0.exe,之后设置电脑的环境变量(看上方的链接)。VS2015没有VS addin了,所以我们先用VS的一个叫做Qt5Package的插件代替addin,地址:https://visualstudiogallery.msdn.microsoft.com/c89ff880-8509-47a4-a262-e4fa07168408,具体操作看上方链接。接下来就是创建一个测试的qt程序,进行Qt库的添加,具体也是看上方链接。能正常运行。

二、添加ffmpeg和SDL2的库

首先要去官网下载正确的ffmpeg和SDL2的库,要对应好自己的系统版本。ffmpeg的库无论是在msvc还是mingw编译器都可以使用,SDL2一般下载的都是mingw的库,msvc的需要自己下载SDL2源码用VS编译。这里提供下载链接:

ffmpeg 32位+64位 库下载:ffmpeg 32位 64位 库

SDL2 32位+64位 msvc库下载:SDL2 32位 64位 库

添加步骤:(以ffmpeg为例)

1、将ffmpeg的库.lib .dll 等都放到项目里,可以创建一个文件夹专门放。

2、将.dll 的库和main.cpp放在同一个目录。

3、在VS中进行库和头文件的添加。

        头文件路径:在工程属性》C/C++》常规》附加包含目录

        库路径:在工程属性》链接器》常规》附加库目录

4、在用到ffmpeg的头文件添加

extern "C"
{
#include "ffmpeg/include/libavcodec/avcodec.h"  
#include "ffmpeg/include/libavformat/avformat.h"  
#include "ffmpeg/include/libavutil/channel_layout.h"  
#include "ffmpeg/include/libavutil/common.h"  
#include "ffmpeg/include/libavutil/imgutils.h"  
#include "ffmpeg/include/libswscale/swscale.h"   
#include "ffmpeg/include/libavutil/imgutils.h"      
#include "ffmpeg/include/libavutil/opt.h"         
#include "ffmpeg/include/libavutil/mathematics.h"      
#include "ffmpeg/include/libavutil/samplefmt.h"   
};
#pragma comment(lib, "avcodec.lib")  
#pragma comment(lib, "avformat.lib")  
#pragma comment(lib, "avdevice.lib")  
#pragma comment(lib, "avfilter.lib")  
#pragma comment(lib, "avutil.lib")  
#pragma comment(lib, "postproc.lib")  
#pragma comment(lib, "swresample.lib")  
#pragma comment(lib, "swscale.lib")

extern "C" 是让c++文件 中用C 来编译这些文件,因为ffmpeg就是用C写的。

#pragma comment 这个就是添加库的链接。

5、测试,在初始化中添加代码,若能正常运行则成功。

{
	av_register_all();
	qDebug() << avcodec_configuration();
	unsigned version = avcodec_version();
	QString ch = QString::number(version, 10);
	qDebug() << "version:" << ch;
}


SDL2 的重复ffmpeg的步骤,操作基本相同,注意4、5步骤:

extern "C"
{
#include "SDL/include/SDL.h"
}
#pragma comment(lib, "SDL2.lib") 
#pragma comment(lib, "SDL2main.lib") 

测试程序:

}
	if (SDL_Init(SDL_INIT_VIDEO))
	{
		qDebug() << "SDL_Init error... " ;		 
	}
	else
	    qDebug() << "SDL_Init ok... ";
}

发布了23 篇原创文章 · 获赞 5 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览