Skip to main content
Associate
June 10, 2024
Solved

Build failing at bin/target.ellf

  • June 10, 2024
  • 3 replies
  • 1906 views

Hi,

I am trying to load a demo in TouchGFX into my display and I've followed all the steps to the tutorial but when I program and run target, I run into the following issue:

Program and Run Target
Generate
Done
Generate Assets
make -f simulator/gcc/Makefile assets -j8
Reading ./application.config
Reading ./target.config
Done
Post Generate
touchgfx update_project --project-file=simulator/msvs/Application.vcxproj
Done
Post Generate Target
touchgfx update_project
.cproject file: ../STM32CubeIDE/.cproject
Writing STM32CubeIDE project file: ../STM32CubeIDE/.project
Writing STM32CubeIDE project file: ../STM32CubeIDE/.cproject
Done
Compile
make -f ../gcc/Makefile -j8
Reading TouchGFX/application.config
Reading TouchGFX/target.config
Linking TouchGFX/build/bin/target.elf

Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB565_16BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.8]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x214): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x3c6): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_16BPPEPKhRKNS_4RectES5_h.part.8+0x8ac): undefined reference to `touchgfx::paint::rgb565::lineFromRGB565(unsigned short*, unsigned short const*, unsigned int, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedARGB8888_16BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.9]':
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x202): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x354): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_16BPPEPKhRKNS_4RectES5_h.part.9+0x40e): undefined reference to `touchgfx::paint::rgb565::lineFromARGB8888(unsigned short*, unsigned long const*, unsigned int, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB565_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.12]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x252): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x326): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB565_32BPPEPKhRKNS_4RectES5_h.part.12+0x498): undefined reference to `touchgfx::paint::argb8888::lineFromRGB565(unsigned char*, unsigned short const*, short, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedRGB888_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.13]':
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x1a8): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x2d0): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D30blitCopyCompressedRGB888_32BPPEPKhRKNS_4RectES5_h.part.13+0x51e): undefined reference to `touchgfx::paint::argb8888::lineFromColor(unsigned long*, short, unsigned long, unsigned char)'
Middlewares/ST/touchgfx_components/gpu2d/TouchGFXNema/lib/cortex_m33/gcc\libtouchgfxnema-float-abi-hard.a(LCDGPU2D.o): In function `touchgfx::LCDGPU2D::blitCopyCompressedARGB8888_32BPP(unsigned char const*, touchgfx::Rect const&, touchgfx::Rect const&, unsigned char) [clone .part.14]':
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x1dc): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x3f8): undefined reference to `touchgfx::paint::argb8888::lineFromARGB8888(unsigned char*, unsigned long const*, short, unsigned char)'
(.text._ZN8touchgfx8LCDGPU2D32blitCopyCompressedARGB8888_32BPPEPKhRKNS_4RectES5_h.part.14+0x678): undefined reference to `touchgfx::paint::argb8888::lineFromColor(unsigned long*, short, unsigned long, unsigned char)'
collect2.exe: error: ld returned 1 exit status
gcc/Makefile:330: recipe for target 'TouchGFX/build/bin/target.elf' failed
make[2]: *** [TouchGFX/build/bin/target.elf] Error 1
gcc/Makefile:326: recipe for target 'generate_assets' failed
make[1]: *** [generate_assets] Error 2
make: *** [all] Error 2
../gcc/Makefile:51: recipe for target 'all' failed
Failed
Failed

 

Any help would greatly be appreciated. 

 

Thank you.

Best answer by adriancriollo

I switched over to v4.23.2 and the problem went away. 

3 replies

Andrew Neil
Super User
June 10, 2024

"undefined references" mean that you have omitted to include the definitions of those functions - either as source code, or as a pre-built binary library.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate
June 10, 2024

Thank you for your reply. I didn't change anything during install or the code. Any suggestion on how to fix?

adriancriolloAuthorBest answer
Associate
June 10, 2024

I switched over to v4.23.2 and the problem went away. 

Visitor II
August 22, 2024

Using v4.24.0 Vector Rendering should be specified. It solved this error in my case.

Then using STM32CubeMX, or editing *.ioc file in STM32CubeIDE :

Pinout & Configuration > Middleware and Software > X-CUBE-TOUCHGFX > TouchGFX generator > Additional Features > Vector Rendering.