Windows Qt的项目移植到Linux

一、打包项目

1、打包项目(zip格式),通过WinsCP拷贝到home/user01目录下。
2、Linux中执行指令

sudo apt-get install unzip

3、解压安装包到当前目录

unzip SecurityMonitoringSystem.zip

二、Linux中打开Qt项目

1、打开qt

cd /opt/Qt5.9.8/Tools/QtCreator/bin
./qtcreator

2、打开项目
在这里插入图片描述
选择pro文件并打开


三、引入库

1、安装SQLite3库和头文件
sudo apt-get install sqlite3 libsqlite3-dev
2、在Qt项目中配置SQLite3
QT += sql

LIBS += -lsqlite3
3、使用SQLite3 API
#include <QtSql>
4、pro文件进行修改适用Linux中的ffempeg
INCLUDEPATH += /usr/local/ffmpeg/include
LIBS+= -L/usr/local/ffmpeg/lib \
       -lavcodec \
       -lavdevice \
       -lavfilter \
       -lavformat \
       -lavutil \
       -lswresample \
       -lswscale
5、链接库
sudo apt-get install libpulse-mainloop-glib

命令:
sudo find / -name libpulse.so*
 
sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so
 
//在lib下就出现了libpulse.so
 
命令:
sudo find / -name libpulse-mainloop-glib.so*
  
sudo cp /usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0.0.5 /usr/lib/libpulse-mainloop-glib.so
 
//在lib下就出现了libpulse-mainloop-glib.so
 
命令:
sudo find / -name libglib-2.0.so*
 
sudo cp /lib/x86_64-linux-gnu/libglib-2.0.so.0 /usr/lib/libglib-2.0.so
 
//在lib下就出现了libglib-2.0.so

四、摄像头的更改

1、找到USB控制器->将USB兼容性 选中 USB 3.0 下边的勾都选上->最后点击确定
虚拟机要关机后才能设计(ubantu16.0.4)
在这里插入图片描述

2、从虚拟机中增加摄像头
点击连接,与主机断开连接摄像头连接到虚拟机
在这里插入图片描述
3、摄像头名获取

for(int i = 0; i < 10; ++i)
{
    QString devicePath = QString("/dev/video%1").arg(i);
    QFile file(devicePath);
    if (file.exists() && file.open(QIODevice::ReadOnly))
    {
        this->dropDownCombox->addItem(QString("video%1").arg(i));
        file.close();
    }
}

Linux中打开摄像头

int CameraThread::openCamera()
{
    //推流格式
    AVInputFormat *fmt=av_find_input_format("video4linux2");
    //摄像头名称的拼接
    QString cameraNameTemp="/dev/"+this->cameraName;
    //打开视频的输入
    int res=avformat_open_input(&this->pFormatContext,cameraNameTemp.toUtf8(),fmt,nullptr);
    if(res!=0)
    {
        qDebug()<<"avformat_open_input failed"<<res;
    }
    return res;
}

问题汇总

摄像头无法打开

问题

  • 解码时程序卡死

  • 使用茄子大头贴软件打开摄像头显示一片黑暗

  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解决方法

  • 找到USB控制器->将USB兼容性 选中 USB 3.0 下边的勾都选上->最后点击确定
    虚拟机要关机后才能设计(ubantu16.0.4)

编码时发送一帧数据失败

问题

  • 编码时这个函数执行失败
avcodec_send_frame

解决方式:配置x264

nasm和x264的安装包自行获取

## 安装nasm
tar xjvf nasm-2.13.01.tar.bz2
cd nasm-2.13.01
./autogen.sh
./configure
make
make install
## 安装 hx264
unzip x264
cd x264
./configure --enable-shared 
make
make install
##重新编译ffmpeg
./configure --enable-shared --disable-yasm --enable-libx264 --enable-gpl --extra-libs=-ldl  --prefix=/usr/local/ffmpeg

make
make install
## 配置x264
vi /etc/ld.so.conf
#将以下内容添加进文件的末尾
include /etc/ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib
/usr/local/x264

总结

希望大家都能移植成功,成功的话帮我点点赞谢谢。

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值