1

qt、portaudio、およびFLACに依存するプロジェクト ( swac-record ) をコンパイルしようとしています。私はMac OS Xを使用しています。

これは私がこれまでに得たものです:

qmake swac-record-0.4   // This creates a Makefile at the same level as the project and .pro and .qrc files inside the project.
qmake swac-record-0.4/swac-record.pro   // not sure what this does exactly
make    // will compile the whole project

...しかし、一部のシンボルを解決できないため、コンパイルは失敗します。

Undefined symbols for architecture x86_64:
  "_FLAC__StreamDecoderErrorStatusString", referenced from:
      DecoderFlac::error_callback(FLAC__StreamDecoderErrorStatus) in codec_flac.o
  "_FLAC__StreamDecoderInitStatusString", referenced from:
      DecoderFlac::decode(Channel&) in codec_flac.o
  "_FLAC__metadata_object_new", referenced from:
      EncoderFlac::setTag(Tag const&) in codec_flac.o
  "_FLAC__metadata_object_vorbiscomment_append_comment", referenced from:
      EncoderFlac::setTag(Tag const&) in codec_flac.o
  "_FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair", referenced from:
      EncoderFlac::setTag(Tag const&) in codec_flac.o

私はC++の経験があまりありません。とにかく、私の理解では、FLAC ライブラリが見つからないためにコンパイルが失敗するということです。

プロジェクトのウェブサイトには、Flac++ (libflac++-dev)を使用していると書かれており、コードでは次のように参照されています。

#include <FLAC++/decoder.h>
#include <FLAC++/encoder.h>

私の質問は次のようになります。

  • libflac++ をインストールするにはどうすればよいですか? flac( Macに既にインストールされているものには含まれていませんか?)
  • libflac++ にリンクするにはどうすればよいですか?

私はこの質問を調査するのにあまり運がありませんでした (私が得た最も近いのはこの質問ですが、Xcode を使用していません)。


編集: ddriver のアドバイスに従って、libflac を自分でビルドし、プロジェクトに追加しました。

libflacのビルド:ソース コードを取得し、.xmlを使用してコンパイルしました./configure && make && make check && make install。私が知る限り、それはうまくいきました:

pkg-config --list-all | grep FLAC++ 
ls /usr/local/lib  | grep FLAC

flac++               FLAC++ - Free Lossless Audio Codec Library (C++ API)
libFLAC++.6.dylib
libFLAC++.a
libFLAC++.dylib
libFLAC++.la

プロジェクトへの追加: swac-record.pro を編集してライブラリを次のように追加しました (このスレッドは役に立ちました):

INCLUDEPATH += /usr/local/lib
LIBS += -L"/usr/local/lib" -lFLAC++

ただし、まだ同じUndefined symbolsエラーが発生します。私は何を取りこぼしたか?

4

0 に答える 0