• 5647阅读
  • 5回复

[提问]移植qt5.6到imx6,提示:SONAME must not be empty string; keeping previous one [复制链接]

上一主题 下一主题
离线我一米八
 

只看楼主 倒序阅读 楼主  发表于: 2016-07-14
移植qt5.6到imx6,配置通过,make的时候,提示:SONAME must not be empty string; keeping previous one。
具体信息如下:

rm -f libQt5Network.so.5.6.1 libQt5Network.so libQt5Network.so.5 libQt5Network.so.5.6
/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -Wl,-rpath-link,/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib -Wl,-rpath-link,/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/arm-poky-linux-gnueabi -mfloat-abi=hard -Wl,--no-undefined -Wl,--no-undefined -Wl,--version-script,QtNetwork.version -Wl,-O1 -Wl,-O1 -Wl,-z,origin -Wl,-rpath,\$ORIGIN -shared -shared -Wl,-soname,libQt5Network.so.5 -Wl,-soname, -o libQt5Network.so.5.6.1 .obj/qftp.o .obj/qhttpnetworkheader.o .obj/qhttpnetworkrequest.o .obj/qhttpnetworkreply.o .obj/qhttpnetworkconnection.o .obj/qhttpnetworkconnectionchannel.o .obj/qabstractprotocolhandler.o .obj/qhttpprotocolhandler.o .obj/qspdyprotocolhandler.o .obj/qnetworkaccessauthenticationmanager.o .obj/qnetworkaccessmanager.o .obj/qnetworkaccesscache.o .obj/qnetworkaccessbackend.o .obj/qnetworkaccessdebugpipebackend.o .obj/qnetworkaccessfilebackend.o .obj/qnetworkaccesscachebackend.o .obj/qnetworkaccessftpbackend.o .obj/qnetworkcookie.o .obj/qnetworkcookiejar.o .obj/qnetworkrequest.o .obj/qnetworkreply.o .obj/qnetworkreplyimpl.o .obj/qnetworkreplydataimpl.o .obj/qnetworkreplyhttpimpl.o .obj/qnetworkreplyfileimpl.o .obj/qabstractnetworkcache.o .obj/qnetworkdiskcache.o .obj/qhttpthreaddelegate.o .obj/qhttpmultipart.o .obj/qnetworksession.o .obj/qnetworkconfigmanager.o .obj/qnetworkconfiguration.o .obj/qnetworkconfigmanager_p.o .obj/qbearerengine.o .obj/qbearerplugin.o .obj/qsharednetworksession.o .obj/qauthenticator.o .obj/qdnslookup.o .obj/qhostaddress.o .obj/qhostinfo.o .obj/qurlinfo.o .obj/qnetworkproxy.o .obj/qnetworkinterface.o .obj/qdnslookup_unix.o .obj/qhostinfo_unix.o .obj/qnetworkinterface_unix.o .obj/qnetworkproxy_generic.o .obj/qabstractsocketengine.o .obj/qhttpsocketengine.o .obj/qsocks5socketengine.o .obj/qabstractsocket.o .obj/qtcpsocket.o .obj/qudpsocket.o .obj/qtcpserver.o .obj/qlocalsocket.o .obj/qlocalserver.o .obj/qnativesocketengine.o .obj/qnativesocketengine_unix.o .obj/qlocalsocket_unix.o .obj/qlocalserver_unix.o .obj/moc_qhttpnetworkreply_p.o .obj/moc_qspdyprotocolhandler_p.o .obj/moc_qnetworkaccesscache_p.o .obj/moc_qnetworkaccessbackend_p.o .obj/moc_qnetworkaccessdebugpipebackend_p.o .obj/moc_qnetworkaccessfilebackend_p.o .obj/moc_qnetworkaccessftpbackend_p.o .obj/moc_qnetworkcookiejar.o .obj/moc_qnetworkreply.o .obj/moc_qnetworkreplyhttpimpl_p.o .obj/moc_qabstractnetworkcache.o .obj/moc_qnetworkdiskcache.o .obj/moc_qhttpthreaddelegate_p.o .obj/moc_qhttpmultipart.o .obj/moc_qnetworkconfigmanager_p.o .obj/moc_qnetworksession_p.o .obj/moc_qbearerplugin_p.o .obj/moc_qdnslookup_p.o .obj/moc_qhostinfo_p.o .obj/moc_qabstractsocketengine_p.o .obj/moc_qhttpsocketengine_p.o .obj/moc_qsocks5socketengine_p.o .obj/moc_qtcpsocket.o .obj/moc_qudpsocket.o .obj/moc_qnativesocketengine_p.o  -L/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib -L/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/lib -ljpeg -ldbus-1 -lrt -L/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/lib -lQt5Core -lpthread -lQt5Core -lpthread
/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.2.0/real-ld: SONAME must not be empty string; keeping previous one
.obj/qftp.o: In function `QFtpPI::startNextCmd()':
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:1210: undefined reference to `QString::operator=(QLatin1String)'
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:1184: undefined reference to `QString::operator=(QLatin1String)'
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:1199: undefined reference to `QString::operator=(QLatin1String)'
.obj/qftp.o: In function `QFtpPrivate::_q_startNextCommand()':
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:2241: undefined reference to `QString::operator=(QLatin1String)'
.obj/qftp.o: In function `QFtpPI::readyRead()':
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:975: undefined reference to `QString::operator=(QLatin1String)'
.obj/qftp.o:/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/access/qftp.cpp:1229: more undefined references to `QString::operator=(QLatin1String)' follow
.obj/qhostinfo.o: In function `QHostInfo::localHostName()':
/home/yocto/manualQtBuild/qt-everywhere-opensource-src-5.6.1/qtbase/src/network/kernel/qhostinfo.cpp:432: undefined reference to `QSysInfo::machineHostName()'
离线我一米八

只看该作者 1楼 发表于: 2016-07-14
配置如下:
./configure \
-release \
-opensource -confirm-license \
-shared \
-dbus \
-mtdev \
-evdev \
-qt-zlib \
-qt-sql-sqlite \
-qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz \
-no-xcb -no-xcb-xlib -no-iconv -no-openssl -no-sse2 \
-qml-debug \
-examplesdir $PWD/qt_install/examples -make libs \
-importdir $PWD/qt_install/imports \
-qmldir $PWD/qt_install/qmls \
-make tools \
-make examples \
-make tests \
-gui -widgets \
-optimized-qmake \
-force-asserts \
-eglfs \
-opengl es2 \
-device-option CROSS_COMPILE=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- \
-device linux-imx6-g++ \
-sysroot /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi \
-no-gcc-sysroot \
-prefix $PWD/qt_install -v
离线我一米八

只看该作者 2楼 发表于: 2016-07-14
qmake.com配置如下:

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib


QT_QPA_DEFAULT_PLATFORM = eglfs
#QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a     #cortex-A8
#QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

IMX6_CFLAGS= -march=armv7-a -mfpu=neon -mtune=cortex-a9 -DLINUX=1 -DEGL_API_FB=1 -pipe -g -feliminate-unused-debug-types
IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGS  
QMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASE  
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE  
QMAKE_CFLAGS           += $$IMX6_CFLAGS  
QMAKE_CXXFLAGS         += $$IMX6_CFLAGS
QMAKE_LFLAGS           += -Wl,-rpath-link,/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib -Wl,-rpath-link,/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/arm-poky-linux-gnueabi

include(../common/linux_device_pre.conf)
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi

QMAKE_CXX               = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi

QMAKE_LINK              = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi

QMAKE_LINK_SHLIB        = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot=/opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi

# modifications to linux.conf
QMAKE_AR                = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-objcopy
QMAKE_NM                = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-nm -P
QMAKE_STRIP             = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-strip

QMAKE_INCDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include  
QMAKE_LIBDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib
QMAKE_LIBDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/lib
  
QMAKE_INCDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/dbus-1.0  
QMAKE_INCDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/dbus-1.0/include  
#QMAKE_LIBDIR            += /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib  
    
QMAKE_INCDIR_OPENGL_ES2 = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include  
QMAKE_LIBDIR_OPENGL_ES2 = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib  
      
QMAKE_INCDIR_EGL = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include  
QMAKE_LIBDIR_EGL = /opt/fsl-imx-fb/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib  
        
QMAKE_LIBS_OPENGL_ES1       += -lGLESv1_CM -lEGL -lGAL  
QMAKE_LIBS_OPENGL_ES1CL     += -lGLES_CL -lEGL -lGAL  
QMAKE_LIBS_EGL         += -lEGL  
QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL -lGAL  
QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL -lGAL  
QMAKE_LIBS             += -ljpeg -ldbus-1 -lrt -lpthread    #编译选项  
DISTRO_OPTS += hard-float          #浮点运算使用软件不使用硬件  
          
            
# Preferred eglfs backend  
EGLFS_DEVICE_INTEGRATION = eglfs_viv  
              
include(../common/linux_arm_device_post.conf)

load(qt_config)
离线我一米八

只看该作者 3楼 发表于: 2016-07-14
哪位大神手动编译过qt5.6,支持opengl,帮忙看一下,感激不尽!
离线自强不吸

只看该作者 4楼 发表于: 2016-10-19
我的编译完运行程序的时候 :
./demo -platform eglfs
会报错:./demo: symbol lookup error: /opt/openGlES/lib/libEGL.so.1: undefined sym
bol: gcoOS_GetTLS

如果直接运行:./demo
会有这个错误:
This plugin does not support createPlatformOpenGLContext!
QtQuick: failed to create OpenGL context


实在是有点头疼,搞了几天了
自强不吸!
离线shf1986

只看该作者 5楼 发表于: 2017-01-10
QQ:173409750
Atmel SAMA5D3x(QQ群:476153000)
TI AM335x(QQ群:275644633)
Qualcomm/NXP/Freescale iMX6(QQ群:47768065)
嵌入式Qt、MySQL(QQ群:437438881)
快速回复
限100 字节
 
上一个 下一个