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
请教,该怎么改?
离线
把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等文件。
离线
这些报错都是和Musicplayer相关的,在pro文件里把musicplay.pri屏蔽掉,还有些与musicplayer类相关的也屏蔽了。可以运行了。
现在的疑问是:
1、win下为什么不能运行?
2、ubuntu下ffmpeg相关的几个库引用为什么报错?
离线
链接报错吗?链接报错是因为ffmpeg的配置不同吧。
离线