在Visual Studio 2012中使用Aquila

时间:2015-02-27 13:56:22

标签: c++ visual-studio-2012

首先我用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;
}

有没有一根手杖帮我????

1 个答案:

答案 0 :(得分:0)

如果您使用aquila 3.0,在使用cmake构建aquila后,Ooura_fft.lib必须位于aquila-build / lib / Debug / Ooura_fft.lib中。您必须将其链接到您的项目。