私はC++プログラミングを始めようとしていますが、私は少しの細部に対してはかなり苦労しています。今、私は下のスニペットを動作させようとしています、そして明らかにそれはコンパイルされますが、リンクされません。 (エラーメッセージはこの記事の末尾にあります)未定義のシンボル:_sf_open(OSXのシンプルなオーディオ)
私はlibsndfile
を使用してオーディオファイルを開きます。リンカーは、そのためのcorrentライブラリファイルを見つけられないようです。これはOS X 10.5にあります。
私はmega-nerd.comからlibsndfileをダウンロードして、、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
コンパイラの呼び出し行をコピー/貼り付けできますか?あなたの問題に対処するのに役立ちます。 –
@yves Neil Butterworthの答えを参照してください。私の行はg ++のstereoSplit.cpp -o split'でした。お二人の助けてくれてありがとう! – winsmith