2026-02-23 3:33 AM
Hi. I am new to STM32 microcontroller. I started with STM32Cube IDE. So far everything is good until a build of a template project failed. I changed the directory structure of template project and moved folders Src, Inc and Startup to project root and removed Core folder. Now project wouldn't build. Although it generates binaries but with errors. I have also updated the Include paths in project properties but linker keeps failing. This is not a big deal I can move everything back to its original position and it will compile and link without any issue. I am just curious that what is missing. Just want to know what is going wrong. This is the error I am getting multiple times.
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-closer.o): in function `_close_r':
(.text._close_r+0xc): warning: _close is not implemented and will always fail
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-closer.o): note: the message above does not take linker garbage collection into account
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-lseekr.o): in function `_lseek_r':
(.text._lseek_r+0x10): warning: _lseek is not implemented and will always fail
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-lseekr.o): note: the message above does not take linker garbage collection into account
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-readr.o): in function `_read_r':
(.text._read_r+0x10): warning: _read is not implemented and will always fail
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-readr.o): note: the message above does not take linker garbage collection into account
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-writer.o): in function `_write_r':
(.text._write_r+0x10): warning: _write is not implemented and will always fail
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol Reset_Handler; defaulting to 08000000
STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(libc_a-writer.o): note: the message above does not take linker garbage collection into account
Finished building target: firmware.elf
Solved! Go to Solution.
2026-02-24 2:22 AM - edited 2026-02-24 2:27 AM
@simrim1 wrote:Is it possible to get rid of these messages.?
I think you'll find that they only appear for the very first build - they won't appear on subsequent builds...
2026-02-23 3:43 AM
@simrim1 wrote:Hi. I am new to STM32 microcontroller.
Welcome to the forum, and the wonderful world of STM32.
Do you have experience with any other microcontrollers? With programming in general?
@simrim1 wrote:everything is good until a build of a template project failed. I changed the directory structure of template project and moved folders Src, Inc and Startup to project root and removed Core folder. Now project wouldn't build.
What was the purpose of that reorganisation? If it was working fine, why change it?
Note that the messages you posted are just warning - not errors.
They refer to file handling support (close, seek, read, write), which is irrelevant if you don't do any file handling in your project - which is generally the case for microcontroller projects.
2026-02-23 3:29 PM
Hi @Andrew Neil,
Thanks for your response.
Do you have experience with any other microcontrollers? With programming in general?
Yes I have above average level of knowledge and experience with Arduino and wanted to explore STM Micro-controllers as well.
What was the purpose of that reorganisation? If it was working fine, why change it?
To be honest, no specific purpose for this reorganization. I came across a project which, probably, was created in the older version ST32CubeIDE. I loaded it in version 2.0.0 and it was built without any warning and message. I noticed the change in my project and reorganized according to that project.
Now to get to root cause of these messages is for information and learning purposes only. I don't mind putting these folders back to Core folder but I just want to know why these messages don't show up when these folders are in Core folder and what actually changes when they are in project root folder and makes them appear.
I hope you are getting what I want to say. Is it possible to get rid of these messages.? Again, I just want to learn how thing are working and how build system operates.
Thanks
2026-02-24 2:22 AM - edited 2026-02-24 2:27 AM
@simrim1 wrote:Is it possible to get rid of these messages.?
I think you'll find that they only appear for the very first build - they won't appear on subsequent builds...
2026-02-24 3:16 PM
@Andrew Neil you are absolutely right. They don't appear in subsequent builds. But if you delete the build folder they appear again on the first build.
Any idea why they don't appear when folder structure is not changed? I am really very curious about it. I really want to know why they appear only after default folder structure change.
Thanks
2026-02-25 1:04 AM
I guess because they are just warning - no need to keep repeating them?
2026-02-25 2:45 AM
@Andrew Neil I am sorry I was on mobile and hit the wrong post as accepted answer. How to change the accepted answer? Thx
2026-02-25 2:47 AM
@Andrew Neil I changed it. Many thanks for your inputs.
2026-03-02 8:07 AM
@simrim1 You could also silence the warnings by providing a file which provides dummy implementations of those functions.
Sometimes, it seems, CubeMX generates this automatically.
An example is attached.