Embedded Studio环境下如何C和C++混合编程?
ES工程中加入了一个.CPP文件,结果编译时提示无法识别CLASS关键字,有谁知道如何设置才能C和C++混合编程?Options -> Build -> Is C++ Project,设为Detect或者Yes. 看下这个说明是否有帮助
https://wiki.segger.com/C%2B%2B_Support_in_Embedded_Studio 按照大家提供的方法我试和哈,,,
可以编译C++文件了,但是编译C文件的时候报一堆的类型匹配错误,主要都是THREADX的C文件,可能时C++编译时的类型检查更严格的原因。
不过还是谢谢大家,我自己再摸索看看。
天马行空 发表于 2024-4-22 14:38
按照大家提供的方法我试和哈,,,
可以编译C++文件了,但是编译C文件的时候报一堆的类型匹配错误,主要都 ...
应该是:return_ptr = TX_NULL; h_007 发表于 2024-4-22 18:05
应该是:return_ptr = TX_NULL;
我截图的那段代码时threadX的内核代码,写法毋庸置疑 天马行空 发表于 2024-4-23 14:39
我截图的那段代码时threadX的内核代码,写法毋庸置疑
试试这个呢?
自己摸索了很多次,总算可以在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会自动识别。 天马行空 发表于 2024-4-23 15:13
自己摸索了很多次,总算可以在ES环境下C和C++混合编程了,简单总结一下,希望有用到的朋友们少走弯路。
1 ...
谢谢分享最终解决办法。 天马行空 发表于 2024-4-23 15:13
自己摸索了很多次,总算可以在ES环境下C和C++混合编程了,简单总结一下,希望有用到的朋友们少走弯路。
1 ...
那还是挺牛逼了啊 谢谢分享。
页:
[1]