gpt4 book ai didi

c++ - 在嵌入式系统上混合使用 C 和 C++

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:35 24 4
gpt4 key购买 nike

所以我遇到了以下问题:我有一个在 FreeRTOS 上运行的 MEMS 板,包括陀螺仪、加速度计和磁力计。

我无法更改任何现有代码(全部在 C 中)。现在我有一个用 C++ 编写的基本运动检测库,我用一些函数扩展了这个库(全部在 C++ 中)。

我以为我可以只使用 C++ 编译器编译所有内容,但我遇到了数百个错误。

我找到了一些如何在 C++ 中使用 C 函数的解决方案,但我不知道如何在 C 中使用 C++ 函数(或库)。有可行的方法吗?我能以某种方式以一种简单的方式包装我所有的 C++ 代码吗?

我正在使用 Keil uvision 为我的嵌入式系统编译代码以防万一。

最佳答案

C 和 C++ 之间存在一些差异,可能会使编译器在某些代码上出错。参见例如 wikipedia page关于这个话题。

我建议您将您的项目拆分为两个项目,一个是 C 中的 RTOS 和应用程序,另一个是运动检测库。然后你必须围绕你的 C++ 库 API 编写一个 C 包装器。 Here's a good SO post on writing a C wrapper for C++ code.

然后你必须link your RTOS + application project to your library ,你compiled in your other uVision project .

关于c++ - 在嵌入式系统上混合使用 C 和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com