lundi 25 avril 2016

Aquila-dsp. Undefined reference error

I have build and installed Aquila-dsp in the directory aquila

This is the code I am trying to execute:

#include "aquila/source/WaveFile.h"
#include <iostream>

int main(int argc, char *argv[])
{
    if (argc < 2)
    {
        std::cout << "Usage: wave_info <FILENAME>" << std::endl;
        return 1;
    }
    Aquila::WaveFile wav(argv[1]);
    std::cout << "Filename: "           << wav.getFilename();
    std::cout << "\nLength: "           << wav.getAudioLength()     << " ms";
    std::cout << "\nSample frequency: " << wav.getSampleFrequency() << " Hz";
    std::cout << "\nChannels: "         << wav.getChannelsNum();
    std::cout << "\nByte rate: "        << wav.getBytesPerSec()/1024 << " kB/s";
    std::cout << "\nBits per sample: "  << wav.getBitsPerSample() << "b\n";

    return 0;
}

The error I am getting:

name@>include$ g++ -std=gnu++11 test.cpp
/tmp/cc1izV5P.o: In function `main':
test.cpp:(.text+0xa7): undefined reference to `Aquila::WaveFile::WaveFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Aquila::StereoChannel)'
test.cpp:(.text+0x120): undefined reference to `Aquila::WaveFile::getAudioLength() const'
test.cpp:(.text+0x23c): undefined reference to `Aquila::WaveFile::~WaveFile()'
test.cpp:(.text+0x2a6): undefined reference to `Aquila::WaveFile::~WaveFile()The error I am getting
collect2: error: ld returned 1 exit status

This is the directory structure and files:

.
├── aquila
│   ├── aquila.h
│   ├── Exceptions.h
│   ├── filter
│   │   ├── MelFilterBank.h
│   │   └── MelFilter.h
│   ├── filter.h
│   ├── functions.h
│   ├── global.h
│   ├── ml
│   │   ├── Dtw.h
│   │   └── DtwPoint.h
│   ├── ml.h
│   ├── source
│   │   ├── Frame.h
│   │   ├── FramesCollection.h
│   │   ├── generator
│   │   │   ├── Generator.h
│   │   │   ├── PinkNoiseGenerator.h
│   │   │   ├── SineGenerator.h
│   │   │   ├── SquareGenerator.h
│   │   │   ├── TriangleGenerator.h
│   │   │   └── WhiteNoiseGenerator.h
│   │   ├── header.h
│   │   ├── PlainTextFile.h
│   │   ├── RawPcmFile.h
│   │   ├── SignalSource.h
│   │   ├── WaveFile.h
│   │   ├── WaveFileHandler.h
│   │   └── window
│   │       ├── BarlettWindow.h
│   │       ├── BlackmanWindow.h
│   │       ├── FlattopWindow.h
│   │       ├── GaussianWindow.h
│   │       ├── HammingWindow.h
│   │       ├── HannWindow.h
│   │       └── RectangularWindow.h
│   ├── source.h
│   ├── synth
│   │   ├── KarplusStrongSynthesizer.h
│   │   ├── SineSynthesizer.h
│   │   └── Synthesizer.h
│   ├── synth.h
│   ├── tools
│   │   └── TextPlot.h
│   ├── tools.h
│   ├── transform
│   │   ├── AquilaFft.h
│   │   ├── Dct.h
│   │   ├── Dft.h
│   │   ├── FftFactory.h
│   │   ├── Fft.h
│   │   ├── Mfcc.h
│   │   ├── OouraFft.h
│   │   └── Spectrogram.h
│   ├── transform.h
│   └── wrappers
│       └── SoundBufferAdapter.h
├── header.h
├── test.c
├── test.cpp
├── tst.c
└── UnitTest++
    ├── AssertException.h
    ├── CheckMacros.h
    ├── Checks.h
    ├── CompositeTestReporter.h
    ├── Config.h
    ├── CurrentTest.h
    ├── DeferredTestReporter.h
    ├── DeferredTestResult.h
    ├── ExceptionMacros.h
    ├── ExecuteTest.h
    ├── HelperMacros.h
    ├── MemoryOutStream.h
    ├── Posix
    │   ├── SignalTranslator.h
    │   └── TimeHelpers.h
    ├── ReportAssert.h
    ├── ReportAssertImpl.h
    ├── TestDetails.h
    ├── Test.h
    ├── TestList.h
    ├── TestMacros.h
    ├── TestReporter.h
    ├── TestReporterStdout.h
    ├── TestResults.h
    ├── TestRunner.h
    ├── TestSuite.h
    ├── TimeConstraint.h
    ├── TimeHelpers.h
    ├── UnitTest++.h
    ├── UnitTestPP.h
    └── XmlTestReporter.h

12 directories, 82 files

Host:

Linux host 4.2.0-16-generic
#19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

How to properly compile this?

1 commentaire:

  1. Hello,
    I have the same problem. I've posted it here
    https://stackoverflow.com/questions/44317406/undefined-reference-to-aquilawavefile
    Best!

    RépondreSupprimer