打印

论坛新人求助:关于C++和线性汇编混合编程

[复制链接]
2575|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hopesealy|  楼主 | 2008-3-10 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在CCS C6000中
我自己写了一个.sa的模块
编译时通过,连接生成.out时报错
提示该函数名未定义

该模块是在.cpp文件中调用的,应该怎么办?

我觉得有可能是.cpp和.sa调用是的接口和.c和.sa的不一样?

因为我试着把CCS提供的例子中.c文件的后缀名改为.cpp,也出现了同样的问题

哪位高手知道是为什么?~~~  谢谢 

相关帖子

沙发
hotpower| | 2008-3-10 13:07 | 只看该作者

估计是头文件的问题

使用特权

评论回复
板凳
hopesealy|  楼主 | 2008-3-10 14:22 | 只看该作者

能说具体点吗?

需要怎么操作头文件?

有人做过C++和线性汇编的混合编程吗

使用特权

评论回复
地板
hitajian| | 2008-3-10 16:12 | 只看该作者

估计是函数申明的问题.

把你的工程打包发来,大家帮你看看.

使用特权

评论回复
5
hopesealy|  楼主 | 2008-3-10 20:03 | 只看该作者

见附件

是一个AVS解码器

我自己小改了一下  dy0dx0
 

相关链接:https://bbs.21ic.com/upfiles/img/20083/20083102025773.rar

使用特权

评论回复
6
hitajian| | 2008-3-10 23:38 | 只看该作者

试了试,没搞定.

建议先把C++改成C
毕竟CCS对C的支持要比C++好的多.

使用特权

评论回复
7
hopesealy|  楼主 | 2008-3-11 09:58 | 只看该作者

已经在尝试了,新问题

先谢过~

这个项目当初是我一手改成C的,我把和C++相关的部分去掉了,就成了你看到的AVS cpp那个工程,里面确实已经没有C++的东西了。
现在把扩展名.cpp改成.c会大量报错,.c 基本上都出在头文件,还有函数名不识别,变量重复定义等...

 我觉得问题可能存在于.cpp和.c文件编译连接成工程时的一些差异,但我又不知道怎么查到这方面的资料

 

使用特权

评论回复
8
hitajian| | 2008-3-11 12:47 | 只看该作者

还不是标准的C

我看看了代码,里面还有不少是标准C不支持的代码和风格.
比如   pBwRefInfo =  new BWREFINFO[MAX_MB_NUM];
另外.头文件里面对结构的定义要改写一下.

使用特权

评论回复
9
hopesealy|  楼主 | 2008-3-12 13:30 | 只看该作者

谢谢hitajian

不过问题已经通过其它方法解决,不用再改成.c

有兴趣的朋友可以参见

extern的详解
http://blog.csdn.net/keensword/archive/2005/06/23/401114.aspx

另外,大家知不知道,为何我新写的一个测试程序CCS不识别memset函数
#include <memory.h>
#include <malloc.h>
这样的头文件也加不进来

我上面发的那个工程里面memset是可以的,似乎也没做什么特别的处理

使用特权

评论回复
10
hopesealy|  楼主 | 2008-3-12 13:57 | 只看该作者

结帖

楼上的问题也已解决

在 string.h 里面

结帖

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝