5

我正在尝试用 C++ 编写一个程序来分析声音。我想使用 libsndfile 库。我在 g++ 编译器选项中添加了一个选项 -lsndfile。但我收到错误:WavReader.cpp:18: undefined reference to `sf_open'

如何链接图书馆?请帮忙!

#include <cstdlib>
#include "WavReader.h"
#include <sndfile.h>
#include <iostream>


namespace SA {

    WavReader::WavReader(char* fileName, SoundProcessor* soundProcessor) {
        this->fileName = fileName;
        this->soundProcessor = soundProcessor;
    }

    void WavReader::readFile() {
        SNDFILE* sf = NULL;
        SF_INFO info;
        info.format = 0; 
        sf = sf_open(this->fileName, SFM_READ, &info);

    }

    WavReader::~WavReader() {
    }
}
4

2 回答 2

6

项目属性 -> 链接器 -> 库 -> 添加选项 -> 另一个选项:-lsndfile

于 2013-02-23T13:54:58.363 回答
2

您需要链接 -lsndfile 库...确保包含库路径,以便它从正确的位置找到库...检查 /usr/lib/ 以确保它存在于您的系统上,或添加正确位置的路径你的库...

于 2013-02-23T12:12:11.520 回答