cancel
Showing results for 
Search instead for 
Did you mean: 

Linker error with provided ARMCLANG library from TouchGfx 4.14.0

jimmii
Senior II

Hi @Martin KJELDSEN​ 

I just updated to 4.14.0. Now I get the linker as I got them in this thread (the problem was the short enums/wchar settings) https://community.st.com/s/question/0D50X0000AlgbG2SQI/arm6-compiler-support

I can see that the armclang lib that comes with 4.14.0 is smaller than the version you provided in the thread.

Any thoughts?

Cheers /jimmii

43 REPLIES 43

Works like a charm. Thanks a lot @Martin KJELDSEN​ !

Awesome!

Joey1
Associate II

Thank you very much for this thread. I was struggling, too, to get Keil MDK Compiler 6 working with the TouchGFX library. The provided newly compiled library works very well with TouchGFX Designer 4.16.1.

For the new version of TouchGFX (1.17) the library included for Keil6.x for a cortex_m7 core doesn't work with Keil Middleware. I guess it is because the TouchGFX library was compiled wihtout the checkmark "short enums/wchar". Is it possible to provide a newly compiled .lib file with the same compiler settings used before in this thread? This would be great since this would enable me to use the improved TouchGFX module for my current project.

@Martin KJELDSEN​ yes, that would be much appreciated. Thanks.

Hi @Joey​ ,

Are you working on a custom board or did you use one of the TouchGFX Board Setups (new name for Application Template) ? We did try Keil6.x so this is surprising, thanks for reporting this. We'll investigate.

/Romain

Hello @Romain DIELEMAN​ . Thanks for your reply.

I'm using a STM32F746G-Discovery Board with no alterations in a custom project. I replaced the TouchGFX Middleware in my project with the new one and let the new version of TouchGFX Designer generate the Code for the GUI. After compiling I get Linker errors that the sizes of wchart-16 doesn't match wchart-32 (see attached picture). Those errors seem to come explicitly from the TouchGFX library.

I have the compiler option "-fshort-enums -fshort-wchar" active since I'm using Keil Middleware, which requires this option. Without this option the Linker throws many more errors of the same type. But this time the errors reference only files from Keil Middleware.

So the libraries for TouchGFX and Keil Middleware don't match in this regard, but the Linker requires all libraries used in a project to have the same enum sizes.

Edit: Maybe I stated my initial problem wrong. The Compiler itself works fine with the new library, it's only the Linker that throws these errors.0693W00000Bcmq0QAB.png

Hi Joey - I'll create a special version for you.

Are you using these settings for a reason? I think Keil ships both a version with short enums and one without

@Martin KJELDSEN​ Keil Middleware only links when "Short enums/wchar" is enabled. Furthermore Keil mentioned : "The wchar_t type must be the same in all source and libraries to successfully link."

So if you are using Keil Middleware and TouchGFX, TouchGFX has to be compiled with this option. That's why you generated all the special versions for me and others in the past year.

So I think you should reconsider how you ship the library for the armclang compiler, since everyone using Keil Middleware cannot use it and you have to recompile a special version for "us" every time.