@huanian 大佬,请问您的qtenv.sh脚本内容是什么。我也遇到相关qt程序开机自启不能加载so库的情况。
vejoker 发布的最佳帖子
vejoker 发布的最新帖子
-
分享QT中引入tplayer,未能渲染到weight中,有没有大佬能改写源码能在QT中使用
这是引入库部分,注释掉的是我写的用不上的,其中crypto需要在sdk中全局查找拷贝来的foot@foot-VirtualBox:~/qtFile/videoDemo/videoDemo$ tree . ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── tpmanager │ ├── crypto1.1 │ │ ├── libcrypto.a │ │ ├── libcrypto.so -> libcrypto.so.1.1 │ │ ├── libcrypto.so.1.1 │ │ ├── libssl.a │ │ ├── libssl.so -> libssl.so.1.1 │ │ └── libssl.so.1.1 │ ├── include │ │ ├── cdx_config.h │ │ ├── CdxKeyedVector.h │ │ ├── libcedarc │ │ │ └── include │ │ │ ├── cdc_config.h │ │ │ ├── memoryAdapter.h │ │ │ ├── sc_interface.h │ │ │ ├── sdecoder.h │ │ │ ├── typedef.h │ │ │ ├── vbasetype.h │ │ │ ├── vdecoder.h │ │ │ ├── veAdapter.h │ │ │ ├── veInterface.h │ │ │ └── vencoder.h │ │ ├── libcedarx │ │ │ ├── base │ │ │ │ └── include │ │ │ │ ├── AwMessageQueue.h │ │ │ │ ├── AwPool.h │ │ │ │ ├── CdxAtomic.h │ │ │ │ ├── CdxBase64.h │ │ │ │ ├── CdxBinary.h │ │ │ │ ├── CdxBitReader.h │ │ │ │ ├── CdxBuffer.h │ │ │ │ ├── CdxDebug.h │ │ │ │ ├── CdxEnumCommon.h │ │ │ │ ├── CdxISOLang.h │ │ │ │ ├── CdxKeyedVector.h │ │ │ │ ├── CdxList.h │ │ │ │ ├── CdxList.i │ │ │ │ ├── CdxLock.h │ │ │ │ ├── cdx_log.h │ │ │ │ ├── CdxMemory.h │ │ │ │ ├── CdxMessage.h │ │ │ │ ├── CdxMeta.h │ │ │ │ ├── CdxQueue.h │ │ │ │ ├── CdxSocketUtil.h │ │ │ │ ├── CdxStrUtil.h │ │ │ │ ├── CdxSysinfo.h │ │ │ │ ├── CdxTime.h │ │ │ │ ├── CdxTypes.h │ │ │ │ ├── CdxUrl.h │ │ │ │ └── SmartDnsService.h │ │ │ ├── external │ │ │ │ └── include │ │ │ │ ├── adecoder │ │ │ │ │ └── adecoder.h │ │ │ │ ├── aencoder │ │ │ │ │ └── aencoder.h │ │ │ │ └── sdecoder │ │ │ │ └── sdecoder.h │ │ │ ├── parser │ │ │ │ └── include │ │ │ │ ├── awPlayReadyLicense.h │ │ │ │ └── CdxParser.h │ │ │ ├── playback │ │ │ │ └── include │ │ │ │ ├── deinterlace.h │ │ │ │ ├── layerControl.h │ │ │ │ ├── player.h │ │ │ │ ├── soundControl.h │ │ │ │ └── subtitleControl.h │ │ │ └── stream │ │ │ └── include │ │ │ ├── AwRtpStream.h │ │ │ ├── CdxSeqBuffer.h │ │ │ ├── CdxStreamErrno.h │ │ │ └── CdxStream.h │ │ ├── PostProcessCom.h │ │ ├── tplayer.h │ │ ├── videoOutPort.h │ │ └── xplayer │ │ └── include │ │ ├── mediaInfo.h │ │ ├── xplayer.h │ │ └── xplayerUtil.h │ ├── jpegdecode │ │ └── libjpegdecode.so │ ├── lib │ │ ├── libadecoder.so │ │ ├── libasound.so -> libasound.so.2.0.0 │ │ ├── libasound.so.2 -> libasound.so.2.0.0 │ │ ├── libasound.so.2.0.0 │ │ ├── libawrecorder.so │ │ ├── libcdx_playback.so │ │ ├── libcrypto.so -> libcrypto.so.1.0.0 │ │ ├── libcrypto.so.1.0.0 │ │ ├── libscaledown.so │ │ ├── libsubdecoder.so │ │ ├── libuapi.so │ │ ├── libvenc_common.so │ │ ├── libvenc_h264.so │ │ ├── libvenc_h265.so │ │ ├── libvenc_jpeg.so │ │ ├── libVE.so │ │ ├── libvideoengine.so │ │ ├── libxplayer.so │ │ ├── libz.a │ │ ├── libz.so -> libz.so.1.2.8 │ │ ├── libz.so.1 -> libz.so.1.2.8 │ │ └── libz.so.1.2.8 │ ├── libcedarc │ │ └── lib │ │ ├── libaftertreatment.la │ │ ├── libaftertreatment.so │ │ ├── libcdc_base.la │ │ ├── libcdc_base.so │ │ ├── libfbm.la │ │ ├── libfbm.so │ │ ├── libMemAdapter.la │ │ ├── libMemAdapter.so │ │ ├── libOmxCore.la │ │ ├── libOmxCore.so │ │ ├── libOmxVdec.la │ │ ├── libOmxVdec.so │ │ ├── libOmxVenc.la │ │ ├── libOmxVenc.so │ │ ├── libsbm.la │ │ ├── libsbm.so │ │ ├── libvdecoder.la │ │ ├── libvdecoder.so │ │ ├── libvenc_base.la │ │ ├── libvenc_base.so │ │ ├── libvencoder.la │ │ └── libvencoder.so │ ├── libcedarx │ │ └── lib │ │ ├── libcdx_base.la │ │ ├── libcdx_base.so │ │ ├── libcdx_common.la │ │ ├── libcdx_common.so │ │ ├── libcdx_parser.la │ │ ├── libcdx_parser.so │ │ ├── libcdx_stream.la │ │ └── libcdx_stream.so │ ├── tmetadataretriever │ │ └── libtmetadataretriever.so │ ├── tplayer │ │ └── libtplayer.so │ └── trecorder │ └── libtrecorder.so ├── User │ ├── tpmanager.cpp │ └── tpmanager.h ├── videoDemo.pro └── videoDemo.pro.user
文件结构树部分就是整个demo项目的结构,我是将
package->allwinner->tina_multimedia
的部分内容拷贝到项目中,其中User
文件夹是参考tplayerdemo.c
的CallbackForTPlayer
写的。最后
mainwindow.cpp
写的内容是MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); TPlayer* tplayer = TPlayerCreate(CEDARX_PLAYER); TPlayerSetNotifyCallback(tplayer,myCallback,NULL); if(TPlayerSetDataSource(tplayer,"http://192.168.0.123:9999/explorer?path=upload%2F2025-03%2F4.mp4",NULL) != 0) { printf("TPlayerSetDataSource() return fail.\n"); } else { printf("TPlayerSetDataSource() end\n"); } if(TPlayerPrepare(tplayer)!= 0) { printf("TPlayerPrepare return fail.\n"); }else{ printf("TPlayerPrepare end\n"); } if(TPlayerStart(tplayer) != 0) { printf("TPlayerStart() return fail.\n"); }else{ printf("started.\n"); } qInfo() << "video is create now" ; } //最简单的一个tplayer播放流程
总结,折腾几天,发现tplayer没有提供视频数据帧的方法,想着能通过tplayer来实现在qt中播放视频,但是源码是开源的,应该能实现在qt中播放,我不会改。如果我说的有什么错误或者不妥之处,还请大佬指正。
-
回复: 请问下,T113-S3TinaLinux,如何新增文件到根文件系统中
方法可行!我的是QT应用,要看准日志中输出的
Package busybox-init-base-files is missing dependencies for the following libraries:
后提示缺少的依赖库,我第一次填写好了依赖库,第二次编译还是不过,仔细一看,又是输出了一次Package busybox-init-base-files is missing dependencies for the following libraries:
缺少依赖库。echo添加进去,编译通过! -
回复: Yuzukilizard V851S autostart settings
@sergpenshin
Rename my_example to S99my_example, then run /etc/init.d/S99my_example enable, and try rebooting重命名 my_example 为 S99my_example
/etc/init.d/S99my_example enable
然后reboot
重启试试 -
/etc/init.d/中配置自启动,自启动报错缺少动态库,终端执行却没问题
终端手动执行没问题
自启动执行报错
这里开始执行我的自启动脚本
这是我的自启动脚本,这里延时10s、20s、1,m都无法启动我的应用请教一下我是哪里写的不对?如何修改?
-
回复: T113-S3芯片,XR829wifi蓝牙模块如何在QT中进行蓝牙开发
【已解决】
步骤一
先将btmanager整个复制到项目中
步骤二
在项目中新建out_lib和out2_lib目录
然后将这段复制到pro文件里最下边(截图的不完整,用下面的代码)LIB_PATH = $$PWD/btmanager/out_lib LIB_PATH2 = $$PWD/btmanager/out2_lib unix:!macx: LIBS += -L$$LIB_PATH2 -lpcre -lffi ## 在 Unix 系统(非 macOS)下添加库 unix:!macx { LIBS += -L$$LIB_PATH -lbluetooth -lglib-2.0 -lsbc -ljson-c -lz -lgmodule-2.0 -lgio-2.0 -lgobject-2.0 -lasound -lbtmg -ldl -lm -lresolv LIBS += -lshared-mainloop -lbluetooth-internal -lshared-glib } INCLUDEPATH += $$PWD/btmanager/include DEPENDPATH += $$PWD/btmanager/include
步骤三
在你的sdk下找到类似这个路径
Tina-SDK/out/t113-bingpi_m2/staging_dir/target/usr/lib
下的所有文件复制到项目下的out_lib中,再找到类似这个路径Tina-SDK/out/t113-bingpi_m2/staging_dir/target/rootfs/lib
下的所有文件复制到项目下的out2_lib中(out文件夹是要进行一次make && moob && pack后编译生成所产生的)
编译执行,就不会缺少依赖了##总结
其实我这个是笨方法,就是缺少啥依赖就将生成的so文件放进去,实际上用到的就是这些-lbluetooth -lglib-2.0 -lsbc -ljson-c -lz -lgmodule-2.0 -lgio-2.0 -lgobject-2.0 -lasound -lbtmg -ldl -lm -lresolv -lshared-mainloop -lbluetooth-internal -lshared-glib
,这些库的意思就是去掉lib和so前缀和后缀的,比如-lbluetooth
就是libbluetooth.so
、-lglib-2.0
就是libglib-2.0.so
。这里是参考btmanager里面demo里的Makefile文件写的,-lbtmg
引入的顺序必须与写的顺序一致,不然会提示缺少依赖,需要写好-lbtmg
所需要的依赖后再引入。 -
T113-S3芯片,XR829wifi蓝牙模块如何在QT中进行蓝牙开发
配置了tinaSDK的环境,根据《Tina_Linux_蓝牙_开发指南.pdf》这篇文档提供的代码位置,找到了so文件,并引入。会报错,请教一下如何正确使用这个so文件?