在Mac OS X上使用Qtmpeg和Qt

时间:2013-10-26 12:11:14

标签: c++ macos qt ffmpeg clang

我正在尝试在Mac OS X 10.8.5上构建一些应用程序。

我正在使用Qt 5.1.1(Clang 3.1,64位)和Qt Creator 2.8.1

ffmpeg来自git repos的最新消息。

使用以下配置

成功构建了ffmpeg
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-      libaacplus --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-shared --disable-static --cc=clang --arch=x86_64 --enable-libxvid --prefix=/Users/ad/dev/ffmpeg/build

但是当我正在尝试构建应用程序时,我正在接收很多错误,就像:

Undefined symbols for architecture x86_64:
"_BN_CTX_free", referenced from:
  _dh_is_valid_public_key in libavformat.a(rtmpdh.o)
"_BN_CTX_new", referenced from:
  _dh_is_valid_public_key in libavformat.a(rtmpdh.o)
"_BN_bin2bn", referenced from:
  _ff_dh_compute_shared_secret_key in libavformat.a(rtmpdh.o)
etc...

恕我直言,我正面临着连接ffmpeg的问题。因为当我构建它时我使用了clang编译器。但是Qt使用了clang ++编译器。 我试图用旗帜重建ffmpeg

--cc=clang++ 

而不是

--cc=clang 

在我的第一个配置中。 但后来我收到了错误:

ERROR: libaacplus >= 2.0.0 not found 

但是libaacplus出现在我的环境中。

有人能说我吗,我怎么能决定这个问题?

1 个答案:

答案 0 :(得分:0)

对此问题似乎相同,虽然库不同,

Qt5.1/Qt5.2 + Mac OS 10.9 (Mavericks) + XCode 5.0.2, Undefined symbols for architecture x86_64

您可能需要将号码(帖子中的10.9)更改为不同的设置(可能是10.8,具体取决于您的XCode SDK而不是Mac OS版本)