2

私はC++プログラミングに取り掛かろうとしていますが、細部にまでかなり苦労しています。現在、私は以下のスニペットを機能させようとしています。どうやらそれはコンパイルされますが、リンクされません。(エラーメッセージはこの投稿の下部にあります)

オーディオファイルを開くために使用libsndfileしていますが、リンカーがそのファイルの現在のライブラリファイルを見つけられないようです。これはOSX10.5にあります。

私はmega-nerd.comからlibsndfileをダウンロードし、通常の、、手順を介してインストールしconfigureまし makesudo 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
4

2 に答える 2

3

ライブラリにリンクする必要があります。コンパイラコマンドは次のようになります。

g++ mystuff.cpp -lsndfile
于 2009-04-26T21:37:40.597 に答える
-1

Xcodeでライブラリをリンクするには、プロジェクトターゲットを選択し、新しいアイテムを[バイナリとライブラリをリンクする]に追加して、コンピューターでlibsndfile.1.dynlibを見つけます。

于 2017-07-23T00:47:46.723 に答える