Qt开发中如何添加第三方库--(以ffmpeg和sdl库为例)

 近期做一个播放器的项目,界面采用qt开发,需要用到第三方库ffmpeg和sdl库。由于以前没有qt添加第三方库的经验,因此在环境配置上费了不少功夫,因此在这里总结一下

  在QT中,自动化编译过程,是通过qmake工具生成一个makefile文件实现的,它是由.pro文件生成而来的,因此添加第三方库可以从.pro工程文件入手。

添加第三方库,我们主要添加两个信息,一个是头文件信息,参数是INCLUDE,还有一个是链接库信息,参数在pro文件参数中是LIBS

同样由于我们所采用的编译器的不同,第三方库的配置方法可能不尽相同,这是由于不同编译器的编译参数决定的

 

QT常用的编译器有两个,分别是MinGw(gcc), VS;QT在编译过程中,默认获在我们设定的编译目录下生成几个makefileTupe文件,然后编译的过程起始就是根据makefile文件中的配置进行的,因此我们在指定编译参数的时候,填写的路径信息,要么是绝对路径(这种方式并不好,换台机子可能就不好使用了),或者给出第三方库文件相对于编译路径的相对地址

为了方便使用,我们将ffmepg库文件和sdl库文件,放到工程编译目录的根目录下,这样ffmpeg的头文件路径就是“./ffmpeg/include”,库文件路径就是“/ffmpeg/lib ”

 MinGw

Gcc编译时引入第三方库的参数通常是

头文件引入 :gcc -I头文件目录

链接库指定:gcc -L链接库地址 -l连接库名称去掉lib

因假设我们添加ffmpe库的代码就是

[plain] view plain copy print?

  1. # include the head file and link library of 'ffmpeg'  
  2. INCLUDEPATH     +=  ./ffmpeg/include  
  3. LIBS            +=  -L./ffmpeg/lib -lavcodec     \  
  4.                     -L./ffmpeg/lib -lavdevice     \  
  5.                     -L./ffmpeg/lib -lavfilter     \  
  6.                     -L./ffmpeg/lib -lavformat     \  
  7.                     -L./ffmpeg/lib -lavutil       \  
  8.                     -L./ffmpeg/lib -lpostproc     \  
  9.                     -L./ffmpeg/lib -lswscale  
# include the head file and link library of 'ffmpeg'
INCLUDEPATH     +=  ./ffmpeg/include
LIBS            +=  -L./ffmpeg/lib -lavcodec     \
                    -L./ffmpeg/lib -lavdevice     \
                    -L./ffmpeg/lib -lavfilter     \
                    -L./ffmpeg/lib -lavformat     \
                    -L./ffmpeg/lib -lavutil       \
                    -L./ffmpeg/lib -lpostproc     \
                    -L./ffmpeg/lib -lswscale

同样对了sdl库

[cpp] view plain copy print?

  1. # include the head file and link library of 'ffmpeg'  
  2. INCLUDEPATH     +=  .\sdl\include  
  3. LIBS            +=  -L.\sdl\lib -lSDL  
# include the head file and link library of 'ffmpeg'
INCLUDEPATH     +=  .\sdl\include
LIBS            +=  -L.\sdl\lib -lSDL

MSVS编译环境

Vs编译器比较简单,它在编译的过程中,并不需要指定-I、-L、-l等参数

因此给我们省去很多麻烦,指定指定文件即可

[cpp] view plain copy print?

  1. # include the head file and link library of 'ffmpeg'  
  2. INCLUDEPATH     +=  .\ffmpeg\include  
  3. LIBS            +=  .\ffmpeg\libavcodec     \  
  4.                     .\ffmpeg\libavdevice     \  
  5.                     .\ffmpeg\libavfilter     \  
  6.                     .\ffmpeg\liBavformat     \  
  7.                     .\ffmpeg\libavutil       \  
  8.                     .\ffmpeg\libpostproc     \  
  9.                     .\ffmpeg\libswscale  
  10.    
  11. # include the head file and link library of 'ffmpeg'  
  12. INCLUDEPATH     +=  .\sdl\include  
  13. LIBS            +=  .\sdl\libSDL  

转载:http://blog.csdn.net/gatieme/article/details/20904547

时间: 2024-09-20 17:25:26

Qt开发中如何添加第三方库--(以ffmpeg和sdl库为例)的相关文章

ui dialog 槽-Qt开发中右键转到槽报错

问题描述 Qt开发中右键转到槽报错 Qt开发中,在界面文件中添加按钮,开始编辑时可以右键转到槽,然后进行操作.但是当我编译运行后,再次添加部分按钮进行添加槽时,就会报错. 报错内容"UI::Dialog"的类找不到.

android开发中listview添加图片

问题描述 android开发中listview添加图片 map1.put("image",R.drawable.jiantou); 我在listview中添加图像时,引用图像的地址,如上所示,但提示错误The method put(String, String) in the type HashMap is not applicable for the arguments (String, int) 但我看别人的代码都可以直接引用图像地址的,请大神帮忙解决一下,谢啦!! 解决方案 Ma

iOS应用开发中UIView添加边框颜色及设置圆角边框的方法_IOS

UIView加边框及边框颜色 引用库: 复制代码 代码如下: #import <QuartzCore/QuartzCore.h> 使用: 复制代码 代码如下: //添加边框和提示         CGRect frameRect = CGRectMake(20, 90, self.window.frame.size.width-40, self.window.frame.size.height-180);         UIView   *frameView = [[UIView alloc

android开发中动态添加view的两个实例

举个例子:比如要在一个LinearLayout中添加一个Button,  子view是Button,父view是LinearLayout. 子view的属性就是通过LayoutParams来设置的,注意是LinearLayout.LayoutParams,因为子view的高度,宽度这些都是针对父view的,要告诉父view自己要占用多大空间,所以是LinearLayout(原来总是会用子view的LayoutParams来设置,错误) public class MyActivity extend

安卓开发中动态添加lsitView 代码实例

 这个很简单 就是为了说明别忘了adapter.notifyDataSetChanged(); 唤醒一下,其实这个唤醒也就是在button下用 或者在别的控件下调用 如果是在getView下就不必了 java代码: public class DynamicListItems extends ListActivity { private static final String ITEM_KEY = "key"; ArrayList<HashMap<String, String

项目开发中对使用的第三方库统一进行管理__添加属性表/页

最近接手的一个项目开发中用到了很多第三方库,比如boost.gdal.xerces等等这些.从接手项目到现在从中学习到了很多之前从未见识过的东西.项目绝大部分都是前辈们写的,对于里面的对第三方库的管理我感觉是很不错的,所以记录下来以备后用,好的东西同时也应该分享给更多的可能会用到的... 项目开发中,如果遇到不是自己开发的项目时,当需要另外的人去维护时,经常连正常的编译连接都不能通过,很多的都是需要设置一些工程属性什么的,搞了半天最终才能编译通过.像这些类似的体力活可能是大多数人不愿弄的. 这里

VS中添加第三方库及相对路径设置

原文 VS中添加第三方库及相对路径设置 对于一些第三方的SDK,一般会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll). 1.  文件位置:为了提高程序的可移植性,将第三库放在解决方案(*.sln)或者工程(*.vcxproj)文件所在的文件夹下.而不要放在其他地方,比如放在D:\某个位置,这样的话,程序在别的电脑上可能就无法运行了. 2.  头文件:在工程属性->VC++目录->包含目录中添加头文件目录 : 使用相对路径添加. 3. 静态库文件:在工程属性->V

qt程序发布时在.pro文件中没有添加使用的库在发布时却要加上?

问题描述 qt程序发布时在.pro文件中没有添加使用的库在发布时却要加上? 解决方案 http://blog.sina.com.cn/s/blog_79ab4be10101p1dk.html

在Qt Creator中使用OpenCV库

在Qt Creator中使用OpenCV库 (Windows 7系统下编译成功) 编译OpenCV2.0 1 下载tdm-mingw-1.908.0-4.4.1-2并安装,安装完毕添加bin到系统路径. 2 安装Opencv2.0 windows版本 3 安装CMake 4 打开CMake,配置源码与目标路径,选择MinGW Makefiles,生成目标Makefile 5 进入设置好的目标路径,make,直至生成所有的库 配置Qt Creator Qt开发的程序一般需要借助qmake生成mak