Ich versuche, ein Programm mit Aquila dsp Bibliothek zu kompilieren. Der Code ist:undefined Verweis auf Aquila :: WaveFile
#include "/usr/aquila/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;
}
Die Make-Datei ist:
MFCC: main.o
g++-5 -Wall -std=c++11 -L/usr/aquila/lib -lOoura_fft -lAquila main.o -o MFCC
main.o: main.cpp
g++-5 -c -Wall -std=c++11 main.cpp
clean:
rm *.o MFCC
Wenn ich versuche, es zu kompilieren, wird die folgende Meldung gezeigt:
[email protected]:~/Contenidos/HSTM/C++/MFCC$ make
g++-5 -Wall -std=c++11 -L/usr/aquila/lib -lOoura_fft -lAquila main.o -o MFCC
main.o: In function `main':
main.cpp:(.text+0xa4): undefined reference to `Aquila::WaveFile::WaveFile(std::string const&, Aquila::StereoChannel)'
main.cpp:(.text+0x117): undefined reference to `Aquila::WaveFile::getAudioLength() const'
main.cpp:(.text+0x224): undefined reference to `Aquila::WaveFile::~WaveFile()'
main.cpp:(.text+0x28b): undefined reference to `Aquila::WaveFile::~WaveFile()'
collect2: error: ld returned 1 exit status
make: *** [MFCC] Error 1
Das nächste Forum fand ich ist unter: Undefined reference with extern C
Ich habe versucht, alle dort gegebenen Ratschläge anzuwenden, aber der Fehler bleibt bestehen. Mein Betriebssystem ist:
[email protected]:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Vielen Dank!