Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Can't build Qt for Tinkerboard?
QtWS25 Last Chance

Can't build Qt for Tinkerboard?

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
6 Posts 4 Posters 3.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    redknight106
    wrote on 30 Sept 2017, 19:55 last edited by
    #1

    Hi,
    I like many others are trying build qt for asus tinker board according to this qt blog post:
    https://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/

    I have spent quite some time going over this with no results. As the guide cross references another guide (https://wiki.qt.io/RaspberryPi2EGLFS) it could become easy to make a mistake. To help I have included a short guide of what I've done.

    Loading QT on to Asus Tinker
    
    http://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/#comments
    https://wiki.qt.io/RaspberryPi2EGLFS
    
    Download latest Cross-compiler for x64
    https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/
    
    Extract and rename to 'toolchain' and place into /tinker folder
    
    Download latest “wayland” variant from the Firefly RK3288 section
    https://developer.arm.com/products/software/mali-drivers/user-space
    
    [on Tinker] copy EGL/GLES/GBM/wayland-egl libraries to /usr/lib/arm-linux-gnueabihf.
    
    1)[on Tinker] Install a bunch of development files (for simplicity we use build-dep, not everything is really needed, but it is easier this way). 
    	
    	A- Disable auto-starting X
    		Command = sudo systemctl set-default multi-user.target or systemctl set-default graphical.target (to restore GUI)
    	1- Edit sources list in /etc/apt/sources.list with use of your favorite editor (nano / vi) and uncomment the 'deb-src' line:
    		Command = sudo nano /etc/apt/sources.list
    	2- Update your system and install required libraries:
    		Command = sudo apt-get update
    		Command = sudo apt-get build-dep qt4-x11 libqt5gui5 wayland weston.
    	3- Prepare our target directory
    		Command = sudo mkdir /usr/local/qt5
    		Command = sudo chown linaro:linaro /usr/local/qt5
     	4- Give Root Password
    		Command = sudo passwd root
    		Command = Password
    		Command = Password
    
    2)[on Host] Create a sysroot on the host:
    	
    	Command = rsync -avz linaro@192.168.0.48:/lib ~/tinker/sysroot
    	Command = rsync -avz linaro@192.168.0.48:/usr/include ~/tinker/sysroot/usr
    	Command = rsync -avz linaro@192.168.0.48:/usr/lib ~/tinker/sysroot/usr
    
    3)[on Host] Make all symlinks relative:	
    	
    	Command = cd ~/tinker
    	Command = wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
    	Command = chmod +x sysroot-relativelinks.py
    	Command = ./sysroot-relativelinks.py sysroot 
    	
    4) [on Host] Configure with -device linux-tinkerboard-g++: 
    	
    	Command = git clone git://code.qt.io/qt/qtbase.git -b dev
    	//or
    	Command = git clone git://code.qt.io/qt/qtbase.git -b 5.10
    	
    	Command = cd qtbase
    	Command = 	./configure -release -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -v \
    				-device tinkerboard -device-option CROSS_COMPILE=~/tinker/toolchain/bin/arm-linux-gnueabihf- \
    				-sysroot ~/tinker/sysroot -prefix /usr/local/qt5 -extprefix ~/tinker/qt5 -hostprefix ~/tinker/qt5-host
    				
    	Command = make
    	Command = make install
    
    5)[on Host] rsyn to tinker
    	return to /tinker
    	Command = rsync -avz qt5 linaro@192.168.0.48:/usr/local
    	
    6)[on Host] Set up QT device and Kit.
    

    After setting up Qt and creating the device and kit when I build the project I get 200+ errors

    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libpng16.so.16, needed by /home/linaro/tinker/qt5/lib/libQt5Gui.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libharfbuzz.so.0, needed by /home/linaro/tinker/qt5/lib/libQt5Gui.so, not found (try using -rpath or -rpath-link)
    Makefile:148: recipe for target 'Test' failed
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libz.so.1, needed by /home/linaro/tinker/qt5/lib/libQt5Gui.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libicui18n.so.57, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libicuuc.so.57, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libicudata.so.57, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libdouble-conversion.so.1, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libdl.so.2, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libgthread-2.0.so.0, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libglib-2.0.so.0, needed by /home/linaro/tinker/qt5/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: librt.so.1, needed by /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libwayland-server.so.0, needed by /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libwayland-client.so.0, needed by /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/toolchain/bin/../lib/gcc/arm-linux-gnueabihf/6.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libdrm.so.2, needed by /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so, not found (try using -rpath or -rpath-link)
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_openTimeZones_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_destroy'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `clock_gettime@GLIBC_2.4'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_nominal_glyph_func'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `dlopen@GLIBC_2.4'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `dlsym@GLIBC_2.4'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_create_read_struct@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_mirroring_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_interlace_handling@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_set_can_recurse'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_set_implementation'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `crc32'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_instance_of'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_IHDR@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_face_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_set_priority'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_general_category_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_image_width@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_io_ptr@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_setSubstChars_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_blob_create'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_create'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_buffer_interface'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_create'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_destroy'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_marshal_constructor'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_countAvailable_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_compareNames_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_openCountryTimeZones_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_event_queue_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_oFFs@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_fromUnicode_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_new'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_eastasian_width_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_blob_get_empty'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_flush'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_remove_poll'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_getAlias_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `inflateInit2_'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_longjmp_fn@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_registry_interface'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_glyph_h_advance_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_get_glyph_positions'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_get_glyph_infos'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_gray_to_rgb@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_callback_interface'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucol_open_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_PLTE@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmFree'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_compression_level@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_destroy'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_dispatch_queue_pending'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_is_immutable'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `dlerror@GLIBC_2.4'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_create'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_text@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_unref'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_add_utf16'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_face_is_immutable'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_font_h_extents_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_gAMA@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_filler@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_bgr@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_glyph_contour_point_func'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_setMillis_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmGetMagic'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_get_client'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_face_set_index'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_valid@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `uenum_next_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_getDSTSavings_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucol_close_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_inDaylightTime_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_write_rows@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_decompose_func'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_clone_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `dlclose@GLIBC_2.4'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_default'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_set_ppem'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_post_error'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_toUnicode_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmSetInterfaceVersion'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_face_create_for_tables'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_PLTE@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucol_setAttribute_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_disconnect'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_sig_bytes@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_create'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_set_segment_properties'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_write_chunk@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_get_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_open_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_client_post_no_memory'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_get_fd'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucol_strcoll_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_pHYs@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `inflate'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_close_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_decompose_compatibility_func'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_prepare_read_queue'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_destroy_read_struct@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_read_events'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_getTimeZoneDisplayName_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_open_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `compress2'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_IHDR@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_add_listener'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_combining_class_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_set_funcs'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_guess_segment_properties'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_x_pixels_per_meter@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_clear_contents'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_read_row@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_global_create'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_new'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_iteration'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_post_event'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_reverse'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_expand@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `u_errorName_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_getDefaultName_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_option@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_set_flags'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_set_scale'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_allocation_successful'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_pending'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_pre_allocate'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_face_set_upem'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_variation_glyph_func'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `double_conversion::StringToDoubleConverter::StringToDouble(char const*, int, int*) const'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `deflateInit2_'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_tRNS@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `u_strToLower_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `uenum_close_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_global_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_set_user_data'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_error_fn@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_get_user_data'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_ot_layout_table_find_script'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_write_info@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_ot_tags_from_script'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_countAliases_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `deflateInit_'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_set_unicode_funcs'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_create_queue'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_add_poll'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_resource_set_user_data'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_shape_full'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_connect'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_cancel_read'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_get_user_data'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmAuthMagic'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_compose_func'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_client_get_display'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_destroy'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_marshal_constructor_versioned'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_getAvailableName_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_packing@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_wakeup'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `u_strToUpper_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmGetBusid'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_oFFs@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_read_fn@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_close_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_create_info_struct@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_read_end@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_openTimeZoneIDEnumeration_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_read_update_info@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_get_length'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `deflate'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_write_image@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_make_immutable'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `uncompress'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_push_thread_default'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_y_pixels_per_meter@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_write_end@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `drmOpen'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_gamma@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucal_getDefaultTimeZone_57'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_image_height@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `deflateEnd'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_glyph_extents_func'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_display_get_error'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_create_write_struct@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_ref'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_read_image@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_invert_mono@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_unicode_funcs_set_script_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `compress'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_read_info@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_buffer_create'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_write_fn@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_marshal'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_get_channels@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_tRNS@PNG16_0'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_destroy'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_gAMA@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `inflateEnd'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_source_attach'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_destroy_write_struct@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_error@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_pop_thread_default'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `hb_font_funcs_set_glyph_h_kerning_func'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_packswap@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_getStandardName_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucol_getSortKey_57'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `double_conversion::DoubleToStringConverter::DoubleToAscii(double, double_conversion::DoubleToStringConverter::DtoaMode, int, char*, int, bool*, int*, int*)'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_text@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Gui.so: undefined reference to `png_set_strip_16@PNG16_0'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `g_main_context_unref'
    /home/linaro/tinker/qt5/lib/libQt5Core.so: undefined reference to `ucnv_getMaxCharSize_57'
    /home/linaro/tinker/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so: undefined reference to `wl_proxy_set_queue'
    collect2: error: ld returned 1 exit status
    make: *** [Test] Error 1
    
    

    I have also attached my QT set-up:

    Debuggers: /usr/bin/gdb-multiarch
    
    Compliers: 	
    		C++ = /home/linaro/tinker/toolchain/bin/arm-linux-gnueabihf-g++
    		C = /home/linaro/tinker/toolchain/bin/arm-linux-gnueabihf-gcc
    
    QT Versions: Qmake = /home/linaro/tinker/qt5-host/bin/qmake
    
    Kits: Sysroot = /home/linaro/tinker/sysroot
    	Enviroment = LD_LIBRARY_PATH = /usr/lib/arm-linux-gnueabihf
    

    If someone could confirm if this is a problem with my hybrid guide or I have missed something important please tell me as I would like to include this into another blog or yours to help others.

    Thank you for your time.

    Kind regards

    1 Reply Last reply
    0
    • MiladM Offline
      MiladM Offline
      Milad
      wrote on 5 Feb 2019, 17:36 last edited by
      #2

      Hello,
      Which version of tinkeros and qt are you using?

      1 Reply Last reply
      0
      • V Offline
        V Offline
        vladstelmahovsky
        wrote on 6 Feb 2019, 06:44 last edited by
        #3

        I think, the best option to bundle linux+qt on tinkerboard is to use Yocto with meta-qt5

        1 Reply Last reply
        0
        • MiladM Offline
          MiladM Offline
          Milad
          wrote on 6 Feb 2019, 07:00 last edited by
          #4

          I agree with you. i ran into exactly same problem you mentioned in your post.

          Can you please tell me your steps through Yocto Qt?
          because there are some tutorials on rock-chip website for (rk3288) but i don't know if its compatible with tinker board.
          Thanks.

          1 Reply Last reply
          0
          • MiladM Offline
            MiladM Offline
            Milad
            wrote on 6 Feb 2019, 09:54 last edited by
            #5

            BTW.
            I could finally fix the problem by adding "DISTRO_OPTS += deb-multi-arch" to qmake.conf in qtbase/mkspecs/devices/linux-tinkerboard-g++

            #
            # qmake configuration for the Asus Tinkerboard (Rockchip RK3288, Cortex-A17, Mali-T764)
            #
            # This configuration targets eglfs via DRM/KMS and Wayland.
            
            DISTRO_OPTS += deb-multi-arch
            
            include(../common/linux_device_pre.conf)
            
            QMAKE_LIBS_EGL         += -lEGL
            QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL
            QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL
            
            DISTRO_OPTS            += hard-float
            COMPILER_FLAGS         += -mtune=cortex-a17 -march=armv7-a -mfpu=neon-vfpv4
            
            # Preferred eglfs backend
            EGLFS_DEVICE_INTEGRATION = eglfs_kms
            
            include(../common/linux_arm_device_post.conf)
            
            load(qt_config)
            
            1 Reply Last reply
            0
            • S Offline
              S Offline
              saeedsoly
              wrote on 18 Apr 2021, 08:25 last edited by
              #6

              Qt 5.14 cross compile for Asus tinker board
              Part 1 : Make tinker board ready for compilation
              Part 2 : Ubuntu VM for Qt Compilation
              Part 3 : Qt Creator setup for build and debug project and run on target tinker board

              Part 1 : Make tinker board ready for compilation:

              1. Prepare microSD card for tinker board and boot-up
              2. Change default linaro password
              3. Connect board to internet and host machine and save tinker board ip-address
              4. Update TinkerOS : sudo apt update
              5. Upgrade TinkerOS : sudo apt upgrade
              6. Install rsync: sudo apt install rsync
              7. Install following packages in tinkerOS
              8. Enable SSH in tinkerOS
                a. Click on start menu
                b. Select Preferences
                c. Select Tinker Board Configurations
                d. Select interfaces tab
                e. Enable ssh
              9. Install dependency packages
                a. sudo apt-get install qt5-qmake libqt5gui5 weston
                b. sudo apt-get install libudev-dev libinput-dev libmtdev-dev libjpeg-dev libfontconfig1-dev
                c. sudo apt-get install libssl-dev libdbus-1-dev libglib2.0-dev libegl1-mesa-dev libgbm-dev libgles2-mesa-dev mesa-common-dev
                d. sudo apt-get install libvpx-dev libsrtp0-dev libsnappy-dev libnss3-dev
                e. sudo apt-get install "^libxcb.*"
                f. sudo apt-get install libfreetype6-dev libicu-dev libsqlite3-dev libxslt1-dev libavformat-dev libswscale-dev
                g. sudo apt-get install libx11-dev libglib2.0-dev
                h. sudo apt-get install libasound2-dev libpulse-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-alsa
                i. sudo apt-get install freetds-dev libsqlite0-dev libpq-dev libiodbc2-dev firebird-dev libjpeg-dev libgst-dev libxext-dev libxcb1 libxcb1-dev libx11-xcb1
                j. sudo apt-get install libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev
                k. sudo apt-get install libxcb-glx0-dev libxi-dev libdrm-dev libssl-dev libxcb-xinerama0 libxcb-xinerama0-dev
                l. sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libfontconfig1-dev
                m. sudo apt-get install libxss-dev libpci-dev libcap-dev libsrtp0-dev libxrandr-dev libnss3-dev libdirectfb-dev libaudio-dev
              10. Create destination directory for Qt5
                a. sudo mkdir /usr/local/qt5
                b. sudo chown linaro:linaro /usr/local/qt5
              11. Give root password
                a. sudo passwd root
              12. Reboot
                a. sudo reboot
                Part 2: Ubuntu VM for Qt Compilation
              13. run virtualBox and setup ubuntu 20.04 give maximum resources as you can and set username as dev
              14. update ubuntu and install compile components
                a. sudo apt-get update
                b. sudo apt-get upgrade
                c. sudo apt-get install gcc git bison python gpeft pkg-config build-essential
                d. sudo apt-get libclang-dev
              15. Make directory for Qt cross compile for tinker board
                a. mkdir /opt/qt5tinker
                b. chown dev:dev /opt/qt5tinker
                c. cd /opt/qt5tinker
              16. Download linaro toolchain, if you have already downloaded copy toolchain at directory
                a. Search on google : linaro toolchain binaries by time of writing this document link is https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
                b. You can get it by wget https://releases.linaro.org/components/toolchain/…Above url
                c. This file gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz is already presented alongside this document
              17. Untar linaro toolchain
                a. tar xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
              18. Export path of linaro tool chain
                a. export PATH=$PATH: /opt/qt5tinker/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
              19. Update bashrc add export command at the end of bashrc file
                a. nano ~/.bashrc
                b. go to last line and paste : export PATH=$PATH: /opt/qt5tinker/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
                c. save and exit
              20. Download qt official release source code
                a. Search on google : download qt official release for qt5.14 current link is : https://download.qt.io/archive/qt/5.14/5.14.0/single/qt-everywhere-src-5.14.0.tar.xz
                b. wget https://download.qt.io/archive/qt/5.14/5.14.0/single/qt-everywhere-src-5.14.0.tar.xz
              21. Untar qt source code
                a. tar xf qt-everywhere-src-5.14.0.tar.xz
              22. Update tinker board config file
                a. nano /opt/qt5tinker/qt-everywhere-src-5.14.0/qtbase/mkspecs/devices/linux-tinkerboard-g++/qmake.conf
                b. add DISTRO_OPTS += deb-multi-arch to this file
                c. save and exit
              23. Make sysroot directory
                a. mkdir /opt/qt5tinker/sysroot
                b. chown dev:dev /opt/qt5tinker/sysroot
              24. Make sure tinker-board and pc are connected and you can ping each other
                a. ping tinkerboardIP
                Note : tinkerboardIP is ip address of eth0 in tinkerboard
              25. Use rsync to sync tinker board /lib directory with sysroot directory
                a. rsync -avz linaro@tinkerboardIP:/lib sysroot
                b. accept SHA256 fingerprint : type yes
                c. type linaro password you have setted at part 1 of this tutorial
              26. Use rsync to sync tinker board /usr/lib directory with sysroot directory
                a. rsync -avz linaro@tinkerboardIP:/usr/lib sysroot/usr
                b. rsync -avz linaro@tinkerboardIP:/usr/include sysroot/usr
              27. Make all symlinks relative:
                a. cd /opt/qt5tinker
                b. wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
                c. chmod +x sysroot-relativelinks.py
                d. ./sysroot-relativelinks.py sysroot
              28. Make build directory
                a. cd /opt/qt5tinker
                b. mkdir qt5build
                c. cd qt5build
                d. ../qt-everywhere-src-5.14.0/configure -release -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -v -device tinkerboard -device-option CROSS_COMPILE=/opt/qt5tinker/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /opt/qt5tinker/sysroot -prefix /usr/local/qt5
              29. Qt5.14 is about to compile after a while you should see results like below image which show components that are available and ready to compile by (yes/no) item.
              30. Make and install
                a. make -j4
                Note: this takes long time depend on the system resources, 4 is number of CPU cores.
                b. make install
              31. Use rsync to sync /opt/qt5tinker/sysroot/usr/local with tinker board /usr/local
                a. rsync -avz /opt/qt5tinker/sysroot/usr/local linaro@tinkerboardIP:/usr/local
                b. type linaro pass and enter

              Part 3 : Qt Creator setup for build and debug project and run on target tinker board

              1. under Tools->Options->Kits add new kit
              2. set name : tinker
              3. set Device type : Generic Linux Device
              4. under Tools->Options->kits->QtVesrions add by path = /opt/qt5tinker/sysroot/usr/local/qt5/bin/qmake
              5. under Tools->Options->Kits->Compilers
                a. add->GCC->C
                b. name gcc_tinker
                c. browse to : /opt/qt5tinker/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
                d. set ABI to : custom,arm,linux,generic,elf,32bit
              6. under Tools->Options->Kits->Compilers
                a. add->GCC->C++
                b. name g++_tinker
                c. browse to : /opt/qt5tinker/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
                d. set ABI to : custom,arm,linux,generic,elf,32bit
              7. under Tools->Options->Kits
                a. select tinker
                b. under compiler select for c select GCC_Tinker and for c++ select G++_Tinker
                c. set Qt version : At 5.14 (tinker)
              8. under Tools->Options->Devices
                a. add
                b. Generic Linux Device
                c. Set name : Tinker board
                d. Set ip address of tinker board and user name
                e. Next next finished
                f. Under type specific set authentication type to default
              9. Go to kits and set device for tinker kit to Tinker Board
              10. For Debug
                a. on host PC : sudo apt-get install gdb-multiarch
                b. on tinker board : sudo apt-get install gdbserver
              11. under Tools->Options->Kits->Debugger
                a. add debugger and set name tinker debugger
                b. set path to : /usr/bin/gdb-multiarch
                c. under kits->tinker set tinker debugger as debugger
              12. For each project set environment variables as follow
                a. In Qt Creator click on Projects and choose run under Build & run panel
                b. Click on details of run Environment add click on Add
                c. Add following variable to system environment as follow
                d. {DISPLAY, :0.0} , {QT_QPA_PLATFORMTHEME, qt5ct}, {XAUTHORITY, /home/linaro/.Xauthority}, {XDG_SESSION_TYPE, x11}
              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved