我目前正在研究stm32f3的嵌入式项目。在这个项目中,我想同时使用.cpp
和.c
文件: C文件用于UART/I2C ...初始化文件,而C++文件用于更加面向对象的解决方案。所以我真的需要保持他们两个。 我的问题是如何使它正常工作?我在网上看到了一些答案,但对我来说这一切似乎都很困惑。如何正确启动C和C++ IAR嵌入式项目?
我已经有一个C++项目中的uart.c/h
文件(该板工作正常)的项目,但是当我向该项目添加i2c.c/h
文件时,出现了很多链接错误。
示例= Error[Li005]: no definition for "I2C_StructInit" [referenced from C:\Users\IAR Embedded Workbench\STM32F3-Discovery_FW_V1.1.0\Project\I2C Interface CPU\Debug\Obj\i2c.o]
如若main
是C或C++文件?
我应该在项目设置中使用Language\Auto
,还是为每个要在C或C++中编译的文件指定?
我什么时候需要使用extern "C"
?
我正在使用IAR Embedded Workbench IDE。 欢迎任何其他建议。
因此我应该使用'language \ C++'吗? –
@AntoineAndrieu不,如果你使用两种语言,那么将它放在'Auto'上并使用正确的文件扩展名来选择文件的语言。 – user694733