Sysprogs forums › Forums › VisualGDB › Project Settings change C Library Type
- This topic has 2 replies, 2 voices, and was last updated 3 years, 9 months ago by support.
-
AuthorPosts
-
March 5, 2021 at 07:04 #30087PeterUParticipant
VisualGDB 5.6(Beta 1, build 4029)
Have an old VisualGDB project with a startup file using a “startup_efr32mg1p.S” that is located in the project, When I modified the .vgdsettings:
- Double click settings file in Solution Explorer
- Select Embedded Project and Click Change settings
- Select and change C Library Type to include floating point support in printf()
- Then close then close .vgdbsettings tab
The C Library Type change seems to work, but there seems to be a side effect(or feature) that a .c source file is added to the project
<ClCompile Include=”$(BSP_ROOT)\EFR32MG1P\StartupFiles\startup_efr32mg1p.c”>
<Filter>Source files\Device-specific files</Filter>
</ClCompile>Just wandering if there is a reason this file is added when the C Library Type is changed as it causes the build to fail?
March 5, 2021 at 08:30 #30089PeterUParticipantSame project as above while changing the .vgbsettings> Makefie settings > CFLAGS: (added switch -mfloat-abi=softfp) then saved this cause Visual Studio to stop responding and after closing VS. Could not reopen project. Found that two files had been added to the project:
<None Include="../sdk/platform/Device/SiliconLabs/EFR32MG1P/Source/GCC/efr32mg1p.ld">
<Filter>Source files</Filter>
</None>
<ClCompile Include="$(BSP_ROOT)\EFR32MG1P\StartupFiles\startup_efr32mg1p.c">
<Filter>Source files\Device-specific files</Filter>
</ClCompile>
Deleting the references to both files in Visual Studio .vcxproj and .vcxproj.filter files made it possible for visual studio to reopen the project.
The efr32mg1p.ld file was already included in the project with its include path with the the \ as directory delimiter as shown below:
<None Include="..\sdk\platform\Device\SiliconLabs\EFR32MG1P\Source\GCC\efr32mg1p.ld">
<Filter>Source files</Filter>
</None>
March 5, 2021 at 12:42 #30094supportKeymasterHi,
VisualGDB would normally regenerate the device-specific part of the project when you change some of the device-level settings (e.g. library type). You can find a detailed explanation of this mechanism for STM32 devices here: https://visualgdb.com/documentation/embedded/stm32/.
Most likely you have previously manually removed some of the VisualGDB-managed files from the project, and editing the settings via VisualGDB GUI put them back.
It is hard to say why a project referencing the .ld file twice would not open. If you could reproduce the issue on a cleanly created project and share the steps we could follow on our side, we can gladly look into it. Otherwise, it is likely triggered by a rare incompatible combination of settings that were set at some point.
You can also try using the new Advanced Embedded CMake Project Subsystem. For this project type VisualGDB has full control over the contents of Solution Explorer, so it can automatically prevent many common errors that happen with VC++-based projects.
-
AuthorPosts
- You must be logged in to reply to this topic.