J'essaie de convertir mon projet en C++ dans TrueSTUDIO for STM32 en
Que rien ne se passe, quand je change de main.c en main.cpp, j'obtiens l'erreur suivante après la construction:
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
Il semble que C est toujours utilisé (également dans la ligne de commande (première partie):
arm-atollic-eabi-gcc -o Fcb1010.elf Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.o Drivers\STM ...
Je m'attendrais à ce que g ++ soit utilisé.
Comment modifier mes paramètres/procédures pour pouvoir utiliser C++ dans TrueSTUDIO pour un projet généré par CubeMX?
METTRE À JOUR
J'ai supprimé Atollic TrueStudio, AC6 System Workbench et réinstallé AC6 System Workbench. Maintenant, je peux utiliser C++ à AC6 System Workbench, même en utilisant STL.
Je n'ose plus installer Atollic TrueStudio, car il rompt l'installation existante de AC6 SystemWorkbench, probablement parce qu'ils utilisent tous les deux Eclipse. Dommage, car certaines fonctionnalités de TrueStudio me plaisaient, mais C++ est plus important pour moi. Donc pour moi, plus de TrueStudio.
L'erreur que vous mentionnez
startup\startup_stm32f407xx.o: Dans la fonction 'LoopFillZerobss': C:\Utilisateurs\Michel\OneDrive\Stm32\Stm32CubeProjects\Fcb1010\Debug/..\startup/startup_stm32f407xx.s: 115: référence non définie à `main '. collect2.exe: erreur: ld a renvoyé 1 état de sortie
C’est un problème d’éditeur de liens, je suppose que la bibliothèque recherche une fonction principale c. Un compilateur C++ manipule les noms, ainsi le symbole ne sera plus main
.
Essayez de changer la signature de votre main
en extern "C" int main(void)
Veuillez suivre les étapes ci-dessous: -
J'espère que cela aidera.