|
自己一个工程,大多数程序都是用C写的,显示部分一些功能想用C++写,因为考虑其封装和安全性都较好,也方便维护。在c文件中想调用c++的结果。
做法:cpp文件中提供c形式的接口函数:
extern "C" int foo(int a)
{
// ....
CMyclass my;
return (my.output(a));
}
同时本cpp文件中提供CMyclass的类定义、实现部分。
在c文件中:
extern int foo(int);
c_result = foo(a);
使用ads,axd工具链开发、调试,c用armcc编译,cpp文件用armcpp编译.
2个文件各自的编译都已经正确,但是最终提示在连接时有问题,大约是说某个和堆栈相关的.o文件中的符号Image$$ZI$$Limit没有定义;
基本可以定位是因为cpp文件中定义的类出现的问题。
哪位有相关经验?可以告知应该如何写该工程的连接脚本(分散加载文件,scatter文件)?
c++的构造、析构函数是否需要单独分配section? 还是因为堆栈使用和c不同?
看了一些linux中.lds文件的写法,因为时间关系没有看太明白,大约是用了ctors和dtors之类的section.
谁能给个比较系统、全面的讲解?说说c++工程和c工程在连接方面的区别?
谢谢了! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|