c++11 - 未定义对天鹰座的引用::WaveFile

标签 c++11 compiler-errors open-source signal-processing

我正在尝试使用Aquila dsp库编译程序。
代码是:

#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;
}

生成文件为:
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

当我尝试编译它时,显示以下消息:
dario@dario-Lenovo-G460:~/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

我找到的最近的论坛在:Undefined reference with extern C

我试图应用那里给出的所有建议,但错误仍然存​​在。
我的操作系统是:
dario@dario-Lenovo-G460:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty

谢谢!

最佳答案

在您的Makefile中,在MFCC的目标中,将主目标文件和可执行文件名称(MFCC)放在库包含之前。

根据此处的答案:c++ undefined references with static library

关于c++11 - 未定义对天鹰座的引用::WaveFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317406/

相关文章:

c++ - 该函数是否覆盖了基本函数?

c++ - 在 C++ 中哪种返回值的方式更快?

c++ - 为什么 accumulate 的并行版本会慢得多?

scala - org.flywaydb#flyway-sbt; 3.1的SBT ResolveException;

c++ - Boost.Python 和 std::shared_ptr 的多态行为

c++ - VC++错误 "no operator << matches these operands",但它可以与其他编译器一起使用

open-source - 开源编程语言的定义是什么?

asp.net-mvc - 使用或开发 asp.net mvc 的开发人员或软件专家

linux - linux的scp开源实现

编译器想要 ";"- 我不知道为什么(在 C 中)