我正在尝试进入C++编程,并且我正在努力应对小细节。现在,我试图让下面的代码片段工作,显然它会编译,但不能链接。 (错误消息是这篇文章的底部)未定义的符号:_sf_open(OSX上的简单音频内容)
我使用libsndfile
来打开音频文件,并且链接器似乎没有找到它的corrent库文件。这是在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
请你复制/粘贴编译器invokation行吗?这将有助于解决您的问题。 – 2009-04-26 21:30:46