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
|