完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在 STM32CubeIDE 中,我创建了一个 C++ 项目。但是 `main.c` 仍然以 .c 扩展名生成,并使用 C 编译器编译。这就是为什么我不能将 C++ 标头包含到 `main.c` 中(因为 C 编译器不理解关键字 `class`)。因此我无法在 `main.c` 中创建 C++ 类的全局实例。
我可以告诉 IDE 为此文件使用 `g++` (C++) 编译器而不是 `gcc`(C 编译器)。但是在语言标准选项中仍然只有 C 选项可用(例如“GNU11(ISO C11 + gnu 扩展)(-std=gnu11)”)。编译器仍会将文件编译为 C 文件而不是 C++。 另一方面,我不敢将 `main.c` 重命名为 `main.cpp`,因为它是在代码生成期间重新生成的(在更新 .ioc 文件之后)。 那么如何让 STM32CubeIDE 将 `main()` 函数放置到 C++ 文件中,例如 `main.cpp`,而不是像 `main.c` 这样的 C 文件? --- 我目前的想法如下: * 告诉 IDE 从编译中排除 `main.c`; * 将 `main.c` 复制到 `main.cpp`; * 将 C++ 头文件包含到 `main.cpp` 中并创建 C++ 类的实例,从 `main()` 函数中调用它们的成员函数; * 每当重新生成代码(和更新 `main.c`)时,将更新复制到 `main.cpp`。 我希望有比这更好的方法。请指教。 |
|
相关推荐
1个回答
|
|
我在这里找到了一些答案 - https://community.st.com/s/global-search/main_cpp。但我不知道如何获得我最喜欢的答案的直接链接(ST 论坛开发人员可能希望添加此功能)。要查看我最喜欢的答案,请搜索“main_cpp”。
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2632 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3607 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:27 , Processed in 0.920940 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号