我试图将我的项目转换为C++ in TrueSTUDIO for STM32
当我将main.c改为main.cpp时,生成后会得到以下错误:
startup\startup_stm32f407xx.o: In function `LoopFillZerobss':
C:\Users\Michel\OneDrive\Stm32\Stm32CubeProjects\Fcb1010\Debug/..\startup/startup_stm32f407xx.s:115: undefined reference to `main'
collect2.exe: error: ld returned 1 exit status似乎仍然使用C(也在命令行(第一部分)中):
arm-atollic-eabi-gcc -o Fcb1010.elf Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.o Drivers\STM ...我希望使用g++。
如何更改我的设置/过程,以便能够在TrueSTUDIO中为CubeMX生成的项目使用CubeMX?
更新
我删除了Atollic,删除了AC6系统工作台,并重新安装了AC6系统工作台。现在,我可以在C++系统工作台上使用AC6,甚至可以使用STL。
我不敢再次安装Atollic,因为它破坏了AC6 SystemWorkbench的现有安装,可能是因为它们都使用Eclipse。很遗憾,因为我喜欢TrueStudio的一些特性,但是C++对我来说更重要。所以对我来说,再也没有TrueStudio了。
发布于 2018-03-26 10:43:01
你提到的错误
函数'LoopFillZerobss':C:\Users\Michel\OneDrive\Stm32\Stm32CubeProjects\Fcb1010\Debug/..\startup/startup_stm32f407xx.s:115:未定义的对‘startup\startup_stm32f407xx.o’的引用2.exe:错误: ld返回了1个退出状态
是一个链接问题,我怀疑库正在寻找一个c的主要功能。C++编译器执行名称损坏,因此符号将不再是main。
尝试将main的签名更改为extern "C" int main(void)
发布于 2018-04-01 11:22:47
请按以下步骤:-
希望这能帮上忙。
https://stackoverflow.com/questions/49459189
复制相似问题