我在构建用于beagleboard的嵌入式QT5时遇到一些错误
- QT 配置./configure -前缀/home/nirvana/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master/out -release -opensource -platform linux-g++-32 -xplatform qws/linux-TIarmv7-sgx-g++ -no-pch -no-glib -no-cups -no-nis -no-gtkstyle -opengl es2 -confirm-license-no-xcb -no-wayland -no-glib -verbose -eglfs -no-c++11 -no-accessibility -system-zlib -qt-libpng -qt-libjpeg -no-openvg -widgets -no-tslib -make libs -make tools -device-option CROSS_COMPILE=/home/nirvana/ti-sdk-beagleboard-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-
2.质量检查导出 QMAKESPEC=">
-
使 -j4
-L/home/nirvana/ti-sdk-beagleboard-06.00.00.00/Graphics_SDK_4_09_00_01/gfx_rel_es5.x/-L/home/nirvana/ti-sdk-beagleboard-06.00.00.00/tslib-1.0/out/lib -L/home/nirvana/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master/qtbase/lib -lQt5Core -lEGL -lGLESv2 -lGLES_CM -lIMGegl -lsrv_um -lusc -lts -lpthread -lqtharfbuzzng -L/home/nirvana/ti-sdk-beagleboard-06.00.00.00/Graphics_SDK_4_09_00_01/gfx_rel_es5.x/-L/home/nirvana/ti-sdk-beagleboard-06.00.00.00/tslib-1.0/out/lib -lts -lz -lEGL -lGLESv2 -lGLES_CM -lIMGegl -lsrv_um -lusc.obj/qimage.o: 在函数
QImage::fill(unsigned int)': qimage.cpp:(.text+0x3926): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('qimage.cpp:(.text+0x3a7a(: 对qt_memfill32(unsigned int*, unsigned int, int)' .obj/qimage_conversions.o: In function
qInitImageConversions(('的未定义引用:qimage_conversions.cpp:(.text+0x3458(:对convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)' .obj/qdrawhelper.o: In function
无效qt_rectfill(无符号int*,无符号int,int,int,int,int,int(的未定义引用:qdrawhelper.cpp:(.text+0x6578(: 对qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function
void qt_bitmapblit_template(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int('的未定义引用:qdrawhelper.cpp:(.text+0x6caa(:对qt_memfill32(unsigned int*, unsigned int, int)' qdrawhelper.cpp:(.text+0x6ccc): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int(的未定义引用qdrawhelper.cpp:(.text+0x6dce(:对qt_memfill32(unsigned int*, unsigned int, int)' qdrawhelper.cpp:(.text+0x6df6): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int(的未定义引用.obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x6e0e(: 更多未定义的引用qt_memfill32(unsigned int*, unsigned int, int)' follow .obj/qdrawhelper.o: In function
qInitDrawhelperAsm((':qdrawhelper.cpp:(.text+0x1b6f8(: 对qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text+0x1b6fc): undefined reference to
qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int(的未定义引用qdrawhelper.cpp:(.text+0x1b700(: 对qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text+0x1b704): undefined reference to
qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int(的未定义引用qdrawhelper.cpp:(.text+0x1b708(: 对qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text+0x1b710): undefined reference to
qt_scale_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int('qdrawhelper.cpp:(.text+0x1b714(: 对qt_scale_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)' qdrawhelper.cpp:(.text+0x1b718): undefined reference to
qt_transform_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int('qdrawhelper.cpp:(.text+0x1b720(: 对qt_transform_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)' qdrawhelper.cpp:(.text+0x1b724): undefined reference to
qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int, QClipData const*('qdrawhelper.cpp:(.text+0x1b72c(:对qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)' qdrawhelper.cpp:(.text+0x1b734): undefined reference to
comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int(的未定义引用qdrawhelper.cpp:(.text+0x1b738(: 对comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)' qdrawhelper.cpp:(.text+0x1b73c): undefined reference to
qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int(的未定义引用qdrawhelper.cpp:(.text+0x1b740(: 对qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)' qdrawhelper.cpp:(.text+0x1b748): undefined reference to
qt_memrotate90_16_neon(unsigned char consst*, int, int, int, unsigned char*, int(的未定义引用qdrawhelper.cpp:(.text+0x1b74c(: 对qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)' qdrawhelper.cpp:(.text+0x1b750): undefined reference to
qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int(的未定义引用.obj/qdrawhelper.o:在函数void qt_rectfill<unsigned int>(unsigned int*, unsigned int, int, int, int, int, int)': qdrawhelper.cpp:(.text+0x6590): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('.obj/qdrawhelper.o:在函数rasterop_solid_NotSource(unsigned int*, int, unsigned int, unsigned int)': qdrawhelper.cpp:(.text+0x65f4): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('.obj/qdrawhelper.o:在函数comp_func_solid_Source(unsigned int*, int, unsigned int, unsigned int)': qdrawhelper.cpp:(.text+0x67a2): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('.obj/qdrawhelper.o:在函数comp_func_Clear(unsigned int*, unsigned int const*, int, unsigned int)': qdrawhelper.cpp:(.text+0x6906): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('.obj/qdrawhelper.o:在函数comp_func_solid_Clear(unsigned int*, int, unsigned int, unsigned int)': qdrawhelper.cpp:(.text+0x6a6a): undefined reference to
qt_memfill32(unsigned int*, unsigned int, int('.obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x6c1e(: 更多未定义的引用qt_memfill32(unsigned int*, unsigned int, int)' follow collect2: error: ld returned 1 exit status make[3]: *** [../../lib/libQt5Gui.so.5.4.0] Error 1 make[3]: Leaving directory
/home/nirvana/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master/qtbase/src/gui'制造[2]: * [子 GUI-make_first] 错误 2make[2]: 离开目录/home/nirvana/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master/qtbase/src' make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory
/home/nirvana/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master/qtbase'制造: * [模块-qtbase-make_first] 错误 2nirvana@nirvana:~/ti-sdk-beagleboard-06.00.00.00/qt-everywhere-opensource-src-5.4.0-master$
有什么理想吗?
多谢
我修复了这个问题,只是强制Qt编译ARM处理器的"neon"支持,只需修改"qtbase/mkspecs/qmodule.pri"中的以下行"./configure"之后:
host_build {
QT_CPU_FEATURES.i386 =
} else {
QT_CPU_FEATURES.arm = neon
}