2021-10-24 10:24 AM
I unzip the project STM32H7BWorkshop2020_labs12 i open the touchGFX project with new version 4.17. I apply the advice suggested to convert project from vers 4.13 to 4.17 e regenerate the code.
then i open STmCUBE IDE but when i built the project it generates this error:
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(LCD.o): in function `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)':
(.text._ZN8touchgfx3LCD10drawStringENS_4RectERKS1_RKNS0_13StringVisualsEPKtz+0x0): multiple definition of `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:51: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:14: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEhPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:23: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o):(.rodata._ZTVN8touchgfx4FontE+0x0): multiple definition of `vtable for touchgfx::Font'; ./Application/User/generated/Texts.o:(.rodata._ZTVN8touchgfx4FontE+0x0): first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::initializeInternal()':
(.text._ZN8touchgfx12TextProvider18initializeInternalEv+0x0): multiple definition of `touchgfx::TextProvider::initializeInternal()'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:46: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::getNextLigature(unsigned char)':
(.text._ZN8touchgfx12TextProvider15getNextLigatureEh+0x0): multiple definition of `touchgfx::TextProvider::getNextLigature(unsigned char)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:32: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0x4c): undefined reference to `touchgfx::HAL::blitCopyWord(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/TouchGFXHAL.o:(.rodata._ZTV11TouchGFXHAL+0x50): undefined reference to `touchgfx::HAL::blitFillWord(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTV19FrontendApplication[_ZTV19FrontendApplication]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTV23FrontendApplicationBase[_ZTV23FrontendApplicationBase]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o:(.rodata._ZTVN8touchgfx14MVPApplicationE[_ZTVN8touchgfx14MVPApplicationE]+0x30): undefined reference to `touchgfx::Application::requestRedraw()'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o:(.rodata._ZTV20TouchGFXGeneratedHAL+0x4c): undefined reference to `touchgfx::HAL::blitCopyWord(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o:(.rodata._ZTV20TouchGFXGeneratedHAL+0x50): undefined reference to `touchgfx::HAL::blitFillWord(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/generated/Screen1ViewBase.o: in function `Screen1ViewBase::Screen1ViewBase()':
C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/gui_generated/src/screen1_screen/Screen1ViewBase.cpp:25: undefined reference to `touchgfx::AnimatedImage::startAnimation(bool, bool, bool)'
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Application/User/generated/Screen1ViewBase.o: in function `touchgfx::TextButtonStyle<touchgfx::ImageButtonStyle<touchgfx::ClickButtonTrigger> >::setText(touchgfx::TypedText)':
C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/STM32CubeIDE/Debug/../../Middlewares/ST/touchgfx/framework/include/touchgfx/containers/buttons/TextButtonStyle.hpp:59: undefined reference to `touchgfx::TextArea::setTypedText(touchgfx::TypedText const&)'
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:92: STM32H7B3I_DISCO.elf] Error 1
Why?
Also when unzipped folder STM32H7BWorkshop2020_labs123 i see the some error about temperatureBar.setXY. It seem that not generate something.. and compiler print out an undefine reference in both the projects..
thanks
Enal
2021-10-24 11:59 AM
I dont check this concrete, but when you upgrade TGFX creates backup and IDE sometimes mix files. Then good practice is delete backup folder...
Second step is generate code in TGFX designer without error and in IDE use CLEAN and refresh project.
And final step is correct changed or obsolete function that in new version not exist. Here for example animationlogo need other method to start anim.
And if you plan use ioc file additional steps is requiáred for update software package TGFX...
2021-10-24 02:00 PM
@MM.1 thanks for your answer.
I don't understand where is the backup folder that you told me. About TouchGFX Designer i have installed only vers 4.0.17.
Did you told me the specific folder in the project where there are again backup files?
please, tell me the path where i can find these.. (i share the touchGfx folder image)
Yes, laway when i regnegerate file with Touch GX without error then i refresh and clean the environent STCube IDE. (thanks for your advice)
I don't understand your last sentences..
(And if you plan use ioc file additional steps is requiáred for update software package TGFX...)
Do you want that i download with .ioc (CubeMX) vers 4.0.13 of TouchGFX?!
thanks
bye
Enal
2021-10-24 10:25 PM
Try in Middlewares\ST\
and versions is 4.17 and 4.13 FYI
And if you plan use ioc file in your project folder, then in this file is coded used version TGFX and generating any change in MX plugin overwrites your external upgrade 4.17 back to 4.13 usw
2021-10-25 12:27 AM
Hello Enal,
Could you please try to do following procedure?
As mentioned here:
Best Regards,
Jiri
2021-10-25 01:48 PM
Hello Jiri,
I follow your procedure.. but nothing..
The version of the generator is already in v 4.17 ( v 4.13 is not yet available), so i re-generate the original project..
i also remove the folder touchgfx_backup in the folder middleware like suggested by MM.1 but nothing the errors are still present..
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(LCD.o): in function `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)':
(.text._ZN8touchgfx3LCD10drawStringENS_4RectERKS1_RKNS0_13StringVisualsEPKtz+0x0): multiple definition of `touchgfx::LCD::drawString(touchgfx::Rect, touchgfx::Rect const&, touchgfx::LCD::StringVisuals const&, unsigned short const*, ...)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:51: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:14: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o): in function `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const':
(.text._ZNK8touchgfx4Font14getStringWidthEhPKtz+0x0): multiple definition of `touchgfx::Font::getStringWidth(unsigned char, unsigned short const*, ...) const'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:23: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(Font.o):(.rodata._ZTVN8touchgfx4FontE+0x0): multiple definition of `vtable for touchgfx::Font'; ./Application/User/generated/Texts.o:(.rodata._ZTVN8touchgfx4FontE+0x0): first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::initializeInternal()':
(.text._ZN8touchgfx12TextProvider18initializeInternalEv+0x0): multiple definition of `touchgfx::TextProvider::initializeInternal()'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:46: first defined here
c:\st\stm32cubeide_1.5.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: C:\TouchGFXProjects\Projects_Workshop\STM32H7BWorkshop2020_labs12\STM32H7BWorkshop2020\STM32CubeIDE\Middlewares\ST\touchgfx\lib\core\cortex_m7\gcc\libtouchgfx-float-abi-hard.a(TextProvider.o): in function `touchgfx::TextProvider::getNextLigature(unsigned char)':
(.text._ZN8touchgfx12TextProvider15getNextLigatureEh+0x0): multiple definition of `touchgfx::TextProvider::getNextLigature(unsigned char)'; ./Application/User/generated/Texts.o:C:/TouchGFXProjects/Projects_Workshop/STM32H7BWorkshop2020_labs12/STM32H7BWorkshop2020/TouchGFX/generated/texts/src/Texts.cpp:32: first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:89: STM32H7B3I_DISCO.elf] Error 1
i attach the image with the list they comes from middleware\ST\touchgfx\lib\core\cortex_m7gcc\libtouchgfx-float-abi-hard.a file..
thanks
Enal
2021-10-25 10:21 PM
Linker say you where is problem ... duplicate definition ... seems upgrade from 13 to 17 isnt complete.
For beginer i dont recommend upgrade, simply go back to start unzip workshop import project to IDE and build. Dont open TouchGFX or download and use 13
2021-10-26 10:34 AM
Hi MM.1,
yes, if i open Cube IDE without touch nothing, it compiles correctly. Thanks.
But if i want to modify something in touchGfx about this project i have the hands tied...
So, i can create a new project in touchGFX 4.17 with modification and then copy the folder in that projects workshop.. e regenerate with CubeMX. mh.. it's a little tricky to understand how is structured the folders project and files...
If you want to advice something to follow.. because that video.. and workshopProject now are unusable if you want modify something. (v 4.0.13 is no longer available..) :(
thanks
bye
Enal
2021-10-26 10:53 AM
2021-10-26 01:14 PM
Sorry MM1, i'm not explain myself well.. the touch GFX 4.13.0 inside CubeMX in not longer available..