硬汉嵌入式论坛

 找回密码
 立即注册
查看: 329|回复: 10
收起左侧

[Embedded Studio] Embedded Studio环境下如何C和C++混合编程?

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2024-4-22 11:14:32 | 显示全部楼层 |阅读模式
ES工程中加入了一个.CPP文件,结果编译时提示无法识别CLASS关键字,有谁知道如何设置才能C和C++混合编程?
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2024-4-22 12:21:37 | 显示全部楼层
Options -> Build -> Is C++ Project,设为Detect或者Yes.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2024-4-22 13:53:28 | 显示全部楼层
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2024-4-22 14:38:57 | 显示全部楼层
按照大家提供的方法我试和哈,,,
可以编译C++文件了,但是编译C文件的时候报一堆的类型匹配错误,主要都是THREADX的C文件,可能时C++编译时的类型检查更严格的原因。
2024-04-22_143407.png


不过还是谢谢大家,我自己再摸索看看。

回复

使用道具 举报

19

主题

371

回帖

428

积分

高级会员

积分
428
发表于 2024-4-22 18:05:34 | 显示全部楼层
天马行空 发表于 2024-4-22 14:38
按照大家提供的方法我试和哈,,,
可以编译C++文件了,但是编译C文件的时候报一堆的类型匹配错误,主要都 ...

应该是:return_ptr = TX_NULL;
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2024-4-23 14:39:12 | 显示全部楼层
h_007 发表于 2024-4-22 18:05
应该是:return_ptr = TX_NULL;

我截图的那段代码时threadX的内核代码,写法毋庸置疑
回复

使用道具 举报

38

主题

291

回帖

405

积分

高级会员

积分
405
发表于 2024-4-23 15:02:48 | 显示全部楼层
天马行空 发表于 2024-4-23 14:39
我截图的那段代码时threadX的内核代码,写法毋庸置疑

试试这个呢?

2024-04-23_15-02-14.png
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2024-4-23 15:13:32 | 显示全部楼层
自己摸索了很多次,总算可以在ES环境下C和C++混合编程了,简单总结一下,希望有用到的朋友们少走弯路。
1、首先目前新版本的ES是默认就支持C和C++混合编程的,无需设置什么。老版本可能要装C++库什么的。
2、C和C++相互调用,最重要的是文件编写要规范。可参考ST库头文件或threadX内核头文件,
    所有C头文件都要用 #ifdef __cplusplus       extern "C" {             #endif
                               #ifdef __cplusplus     }      #endif
    包裹,我的问题就出在这里,自己写的C文件没有考虑那么多,结果导致编译出现各种问题。
3、C++文件命名一定要是CPP结尾,ES会自动识别。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2024-4-23 15:22:59 | 显示全部楼层
天马行空 发表于 2024-4-23 15:13
自己摸索了很多次,总算可以在ES环境下C和C++混合编程了,简单总结一下,希望有用到的朋友们少走弯路。
1 ...

谢谢分享最终解决办法。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2024-4-23 20:51:36 | 显示全部楼层
天马行空 发表于 2024-4-23 15:13
自己摸索了很多次,总算可以在ES环境下C和C++混合编程了,简单总结一下,希望有用到的朋友们少走弯路。
1 ...

那还是挺牛逼了啊
回复

使用道具 举报

59

主题

282

回帖

459

积分

高级会员

积分
459
发表于 2024-4-24 07:14:33 | 显示全部楼层
谢谢分享。  
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 00:32 , Processed in 0.271430 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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