您尚未登录。

楼主 #1 2020-01-18 14:28:19

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,200
积分: 1140.5

下载了git上野火的imx6ul的配套qt例程,在ubuntu下编译报错。

https://github.com/Embedfire/ebf_linux_qt_demo

在win下能通过编译,但是执行程序时异常。
App.exe - 无法找到入口
无法定位程序输入点_ZN12QtListWidget12setScaleSizeEii于动态链接库F:\xxx\App.exe上。

转到ubuntu下,用pc端的qmake,结果报错:
typedef redefinition with different types('long long' vs '__off64_t'(aka 'long'))

找了下,在某个头文件有这个:
typedef long long off64_t

在另一个头文件里有:
#if defined( _WIN32 ) || defined ( _WIN64 )
  #define __INT64   __int64
  #define __UINT64  unsigned __int64
#else
  #define __INT64   long long
  #define __UINT64  unsigned long long
#endi

请教,该怎么改?

离线

楼主 #2 2020-01-18 15:17:05

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,200
积分: 1140.5

Re: 下载了git上野火的imx6ul的配套qt例程,在ubuntu下编译报错。

把typedef long long off64_t这句屏蔽了,又有新的错误:
:-1: error: skipping incompatible /home/any/imx6ul/ebf_linux_qt_demo/ffmpeg/linuxlib/libavfilter.so when searching for -lavfilter
:-1: error: cannot find -lavfilter

我看了下pri里关于库的引用:
INCLUDEPATH += $$PWD/include
INCLUDEPATH += $$PWD

win32 {
LIBS += -L$$PWD/winlib/ -lavcodec -lavfilter -lavformat -lswscale -lavutil
}
unix {
LIBS += -L$$PWD/linuxlib -lavfilter -lavformat -lavdevice -lvcodec -lswscale -lavutil -lswresample -lpthread -lm -lrt -ldl
}

而且linuxlib文件夹下有libavfilter、libavformat等文件。

离线

楼主 #3 2020-01-18 16:27:10

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,200
积分: 1140.5

Re: 下载了git上野火的imx6ul的配套qt例程,在ubuntu下编译报错。

这些报错都是和Musicplayer相关的,在pro文件里把musicplay.pri屏蔽掉,还有些与musicplayer类相关的也屏蔽了。可以运行了。

现在的疑问是:
1、win下为什么不能运行?
2、ubuntu下ffmpeg相关的几个库引用为什么报错?

离线

#4 2020-01-18 17:26:08

超级萌新
会员
注册时间: 2018-05-04
已发帖子: 408
积分: 407

Re: 下载了git上野火的imx6ul的配套qt例程,在ubuntu下编译报错。

链接报错吗?链接报错是因为ffmpeg的配置不同吧。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn