QT在pro工程文件里进行条件判断

简介: QT在pro工程文件里进行条件判断

在使用QT进行开发时,经常遇到一份工程代码在不同的平台进行编译、比如:  Android、windows、Linux系统、嵌入式linux系统等。或者一份工程代码编译64位、32位不同的版本。


如果这一份工程代码里有所附带针对平台专用的外部的链接库或者一些头文件、配置文件等等,为方便在同一份工程里进行编译,可以在pro文件里写上条件判断,实现系统区分。


例如:

DEFINES += ANDROID_APP   #如果想编译Android版本就执行这行代码,否则就注释掉
if(contains(DEFINES,ANDROID_APP)) {
    message('运行Android版本')
    #指定库文件的路径
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lavcodec
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lavfilter
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lavutil
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lavdevice
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lavformat
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lpostproc
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lswscale
    LIBS += -L$$PWD/ffmpeg_android_arm64 -lswresample
    #指定头文件的路径
    INCLUDEPATH+=$$PWD/ffmpeg_android_arm64/include
    contains(ANDROID_TARGET_ARCH,arm64-v8a) {
        ANDROID_EXTRA_LIBS = \
            $$PWD/ffmpeg_android_arm64/libavcodec.so \
            $$PWD/ffmpeg_android_arm64/libavfilter.so \
            $$PWD/ffmpeg_android_arm64/libavformat.so \
            $$PWD/ffmpeg_android_arm64/libavutil.so \
            $$PWD/ffmpeg_android_arm64/libpostproc.so \
            $$PWD/ffmpeg_android_arm64/libswresample.so \
            $$PWD/ffmpeg_android_arm64/libswscale.so \
            $$PWD/ffmpeg_android_arm64/libavdevice.so \
            $$PWD/ffmpeg_android_arm64/libclang_rt.ubsan_standalone-aarch64-android.so
    }
}else{
    message('运行桌面版本')
    #指定库的路径
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lavcodec
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lavfilter
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lavutil
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lavdevice
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lavformat
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lpostproc
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lswscale
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lswresample
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib -lx264
    unix:LIBS += -L$$PWD/ffmpeg_x64_shared/lib
    #制定头文件的路径
    INCLUDEPATH+=$$PWD/ffmpeg_x64_shared/include
}


目录
相关文章
|
4月前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
48 0
|
5月前
|
C++
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
571 6
|
4月前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
130 4
|
4月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
910 4
|
4月前
|
XML 开发框架 API
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
225 1
|
4月前
QT 软件打包为一个单独可执行.exe文件流程
QT 软件打包为一个单独可执行.exe文件流程
956 0
|
4月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
205 1
|
4月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
119 0
|
3月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。