OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2378|回复: 3

关于keil 5 混编C与C++报错问题

[复制链接]

11

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2018-3-26
在线时间
107 小时
发表于 2019-8-5 17:00:49 | 显示全部楼层 |阅读模式
5金钱
keil使用c++ 与c混编,在魔术棒中c/c++的Misc Controls  要不要加--cpp或--cpp11??

因为有一个工程加了报错、不加不报错。另外一个刚好相反,不加不报错,加了报错。

1、原工程全是C编写。但是要引入一个C++的文件及其头文件。所以在原工程中添加了该cpp文件。当然各种报错!!!我试过将C文件全改为cpp后缀、几百个错


/********没有使用--cpp情况(不报错)**********/

2、上网查后发现对于keil ,要想调用cpp中的函数,那么该文件也得是cpp格式。于是将  要调用刚添加的cpp文件的  c文件,后缀名改为了cpp。于是各种报错。这种情况是加了--cpp。如果把--cpp去掉,就可以编译通过,没有报错。



/********没有使用--cpp情况(   报错  报错   报错 )*************/
3、我使用一个只有串口的文件,添加了需要测试的cpp文件,(main.c编译的话  是报错的。所以把main移除工程,新建一个test.cpp。内容跟mian一样),添加--cpp编译通过,不加--cpp,编译错误。

那么问题来了,这个--cpp到底加不加?加或者不加,我的两个工程是截然相反的。


我上传了其中一个测试工程,就是串口的不适用--cpp报错的那个。可以下载下来试一下把魔术棒中c/c++选项中的   --cpp添加和去除 效果。另外一个太大,不上传了。


PS:请有经验,了解的坛友,可以详细讲解一下。

/*********百度上这种方法也试过*************/
#ifndef     _XX_H_

#define    _XX_H_

#ifdef __cplusplus
extern "C" {
#endif

......

#ifdef __cplusplus
}
#endif

#endif



442a2f1d0e8c8d785d7abb59edbeabf.png

最佳答案

查看完整内容[请看2#楼]

别沉啊、、、、、、、、、、、、、、、、、、
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2018-3-26
在线时间
107 小时
 楼主| 发表于 2019-8-5 17:00:50 | 显示全部楼层
别沉啊、、、、、、、、、、、、、、、、、、
回复

使用道具 举报

11

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2018-3-26
在线时间
107 小时
 楼主| 发表于 2019-8-5 17:04:51 | 显示全部楼层
还有一个 因为网上介绍使用  Use MicroLIB   就不要使用c++。但是我有一个能跑在产品上的工程,即使用了Use MicroLIB,也用了C++。当然我是照着那个工程(加了--cpp)配置了,结果不一样
回复

使用道具 举报

11

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2018-3-26
在线时间
107 小时
 楼主| 发表于 2019-8-8 11:30:03 | 显示全部楼层
结贴了,解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 08:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表