Android NDK - SoundTouch 中的歧义函数 fabs()
Android NDK - ambiguous function fabs() in SoundTouch
我正在尝试在Android中构建SoundTouch库。
我遵循了 SoundTouch 本身在自述文件中编写的指南,但在构建它时仍然出现此错误:
ct.cpp:238:32: error:
call to 'fabs' is ambiguous
xcorr[offs] += (float) fabs(sum);
这行代码BPMDetect.cpp
这个函数:
void BPMDetect::updateXCorr(int process_samples)
{
int offs;
SAMPLETYPE *pBuffer;
assert(buffer->numSamples() >= (uint)(process_samples + windowLen));
pBuffer = buffer->ptrBegin();
// calculate decay factor for xcorr filtering
float xcorr_decay = (float)pow(0.5, 1.0 / (xcorr_decay_time_constant * target_srate / process_samples));
#pragma omp parallel for
for (offs = windowStart; offs < windowLen; offs ++)
{
LONG_SAMPLETYPE sum;
int i;
sum = 0;
for (i = 0; i < process_samples; i ++)
{
sum += pBuffer[i] * pBuffer[i + offs]; // scaling the sub-result shouldn't be necessary
}
xcorr[offs] *= xcorr_decay; // decay 'xcorr' here with suitable time constant.
xcorr[offs] += (float) fabs(sum);
}
}
由于我知道fabs()
函数包含在math.h
库中,至少在 c 中,我检查了文件中导入的库,如下所示:
#include <math.h>
#include <assert.h>
#include <string.h>
#include <stdio.h>
仅供参考:由于长度,我决定不发布所有代码,如果您需要它,请告诉我,我会立即发布。
您是否在STTypes.h
中更改为SOUNDTOUCH_INTEGER_SAMPLES
(16 位)?
就我而言,我在此配置中遇到了相同的错误。
要解决此问题,您可以尝试将晶圆厂功能更改为实验室,因为LONG_SAMPLETYPE
是 16 位的长类型。
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- Android NDK - SoundTouch 中的歧义函数 fabs()
- 'fabs':使用模板时对重载函数的不明确调用