找回密码
 注册
Simdroid-非首页
查看: 90|回复: 2

[求助]vc与matlab6.5 混编 错误“unresolved external symbol _utFdlibm_pow”

[复制链接]
发表于 2010-6-13 15:34:44 | 显示全部楼层 |阅读模式 来自 陕西西安
请问大侠!!    我在把小波谐波分解的harmonic.m文件编译为cpp文件,但是harmonic.cpp的目标文件harmnoic.obj出现错误:harmonic.obj : error LNK2001: unresolved external symbol _utFdlibm_pow。而harmonic.cpp文件中根本没有_utFdlibm_pow这个字符。不知如何解决,    郁闷呢,为什么混编的时候总是有意想不到的错误出现!

附谐波小波分解程序:
f = data;
N=length(f);
n=round(log(N)/log(2));
% harmonic wavelet decompose
F=fft(f)/N;
a(1)=F(1);a(2)=F(2);
for j=1:n-2
    a(2^j+1:2^(j+1))=ifft(F(2^j+1:2^(j+1)))*2^j;
    a(N-2^(j+1)+2:N-2^j+1)=fliplr(a(2^j+1:2^(j+1)));
end
a(N/2+1)=F(N/2+1);
a(N)=F(N);

for k=1:2^(n-2)
    A(1,k)=(abs(a(1))^2);%log
    A(n+1,k)=(abs(a(2^(n-1)+1))^2);%log
end
for h=2:n
    for k=1:2^(h-2)
        for m=1:2^(n-h)
            A(h,(k-1)*2^(n-h)+m) =(abs(a(2^(h-2)+k))^2+abs(a(N+2-2^(h-2)-k))^2);%log
        end
    end
end
 楼主| 发表于 2010-6-14 09:35:48 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
:victory:问题解决了!!
回复 不支持

使用道具 举报

 楼主| 发表于 2010-6-14 09:57:22 | 显示全部楼层 来自 陕西西安
分享解决方法:
在mwutil.h 里有这个宏#define utDoubleScalarPower(a,b)  utFdlibm_pow(a,b)
又查看harmonic.cpp里面有utDoubleScalarPower(a,b),它的意思就是a^b,
所以我在harmonic.cpp中svDoubleScalarPower(a,b)直接换成power(a,b),
使之与函数utFdlibm_pow(a,b)脱离关系,就OK了!
总结:
  1. error LNK2001: unresolved external的问题主要还是有M文件转换CPP后有函数不识别的问题;
  2.根据错误信息,找到不识别的函数;然后尝试加包含这个函数的头文件或者用另一个函数替代。

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 21:33 , Processed in 0.039394 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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