首先我用Cmake制作Aquila
然后打开由Cmake生成的Aquila.sln
文件
然后从构建菜单和批量构建检查
Aquila Debug Win32 Debug|Win32
Aquila Release Win32 Release|Win32
并生成Aquila.lib
并在我的解决方案中添加了此库和.h
文件以运行示例,但是我有这个错误:
错误1错误LNK2019:未解析的外部符号_cdft参考 function" public:virtual class std :: vector,class std :: allocator> __thiscall Aquila :: OouraFft :: fft(double const * const)" (?FFT @ OouraFft @ @@雕UAE?AV?$ @矢量V'$复杂@ N @ @@ STD V'$分配器@ V'$复杂@ N @ STD @@@ 2 @@ STD @@ @ QBN Z)C:... \ aquila \ Aquila.lib(OouraFft.obj)
然后我将运行时库从Multi threaded debuge DLL (/MDd)
更改为
Multi threaded debuge (/MTd)
但有此错误:错误1错误LNK2038:检测到不匹配 ' RuntimeLibrary&#39 ;:值' MDd_DynamicDebug'不匹配价值 ' MTd_StaticDebug'在 aquila.obj C:... \ aquila \ Aquila.lib(SignalSource.obj)
Aquila示例
#include "aquila/aquila.h"
#include "stdafx.h"
int main()
{
// input signal parameters
const std::size_t SIZE = 64;
const Aquila::FrequencyType sampleFreq = 2000, f1 = 125, f2 = 700;
Aquila::SineGenerator sine1(sampleFreq);
sine1.setAmplitude(32).setFrequency(f1).generate(SIZE);
Aquila::SineGenerator sine2(sampleFreq);
sine2.setAmplitude(8).setFrequency(f2).setPhase(0.75).generate(SIZE);
auto sum = sine1 + sine2;
Aquila::TextPlot plot("Input signal");
plot.plot(sum);
// calculate the FFT
auto fft = Aquila::FftFactory::getFft(SIZE);
Aquila::SpectrumType spectrum = fft->fft(sum.toArray());
plot.setTitle("Spectrum");
plot.plotSpectrum(spectrum);
return 0;
}
有没有一根手杖帮我????
答案 0 :(得分:0)
如果您使用aquila 3.0,在使用cmake构建aquila后,Ooura_fft.lib必须位于aquila-build / lib / Debug / Ooura_fft.lib中。您必须将其链接到您的项目。