Atollic TrueSTUDIO:如何从C转换为C++?

Mic*_*ers 10 c++ stm32 truestudio

我尝试将我的项目转换为TrueSTUDIO中的C++ for STM32

  • 选择项目(在C/C++ Projects选项卡中)
  • 鼠标右键,选择新建/其他
  • 在C/C++选项卡中,转换为C/C++项目(添加C/C++性质)
  • 按下Next时,没有任何反应(不清楚原因)
  • 当我再次按下Next时,我看到:转换为C/C++项目:向导将C/C++ Nature添加到所选项目中以启用它们的C/C++工具支持
  • 我按完了

没有什么事情发生,当我将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
Run Code Online (Sandbox Code Playgroud)

似乎仍然使用C(也在命令行(第一部分):

arm-atollic-eabi-gcc -o Fcb1010.elf Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.o Drivers\STM ...
Run Code Online (Sandbox Code Playgroud)

我希望使用g ++.

如何更改我的设置/过程,以便能够在TrueSTUDIO中为CubeMX生成的项目使用C++?

UPDATE

我删除了Atollic TrueStudio,删除了AC6 System Workbench,并重新安装了AC6 System Workbench.现在我可以在AC6 System Workbench上使用C++,甚至使用STL.

我不敢再次安装Atollic TrueStudio,因为它破坏了现有的AC6 SystemWorkbench安装,可能是因为它们都使用了Eclipse.遗憾的是,因为我喜欢TrueStudio的一些功能,但C++对我来说更重要.所以对我来说,不再是TrueStudio.

Col*_*lin 2

你提到的错误

startup\startup_stm32f407xx.o:在函数“LoopF​​illZerobss”中:C:\Users\Michel\OneDrive\Stm32\Stm32CubeProjects\Fcb1010\Debug/..\startup/startup_stm32f407xx.s:115:对“main”collect2.exe的未定义引用:错误:ld 返回 1 退出状态

是链接器问题,我怀疑该库正在寻找 ac main 函数。C++ 编译器执行名称修改,因此符号将不再是main.

尝试将您的签名更改mainextern "C" int main(void)