我正在尝试进入 C++ 编程领域,但我对这些小细节非常挣扎。现在,我正试图让下面的代码片段工作,显然它会编译,但不会链接。(错误信息是这篇文章的底部)
我libsndfile
用来打开音频文件,链接器似乎没有找到它的正确库文件。这是在 OS X 10.5 上。
我已经从 mega-nerd.com 下载了 libsndfile 并通过 ususal configure
、 make
、sudo make install
过程安装了它。还有什么我需要做的吗?
编辑:如果有任何问题,我的系统上安装了 macports。
这是我的代码:
#include <iostream>
#include <string>
#include <sndfile.h>
#include "stereoSplit.h"
using namespace std;
int stereoSplit(string filename)
{
cout << filename;
SF_INFO sfinfo;
sfinfo.format = 0;
SNDFILE * soundfile;
soundfile = sf_open( filename.c_str(), SFM_READ, &sfinfo );
return 0;
}
int main (int argc, char const *argv[])
{
return stereoSplit("testStereo.wav");
}
这是完整的错误消息:
Undefined symbols:
"_sf_open", referenced from:
stereoSplit(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cc3hvkkk.o
ld: symbol(s) not found
collect2: ld returned 1 exit status