在Mac OS 10.9上构建libaacplus

时间:2013-12-24 13:48:36

标签: build ffmpeg

我尝试使用此编译libaacplus(来自FFMPEG网站):

wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz
tar xzf libaacplus-2.0.2.tar.gz
cd libaacplus-2.0.2
sed -i '.bck' -e 's/libtool/glibtool/' autogen.sh
./autogen.sh
make
make install

make步骤失败:

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive 
Making all in src 
make[2]: Nothing to be done for `all'. 
Making all in include make[2]: Nothing to be done for `all'. 
Making all in patches make[2]: Nothing to be done for `all'. 
Making all in frontend 
/bin/sh ../libtool  --tag=CC   --mode=link gcc  -g -O2   -o aacplusenc main.o ../src/libaacplus.la -lm  
libtool: link: gcc -g -O2 -o .libs/aacplusenc main.o  ../src/.libs/libaacplus.dylib -lm     
Undefined symbols for architecture x86_64:
   "_AuChannelOpen", referenced from:
      _main in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[2]: *** [aacplusenc] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2

当我使用10.8.x时,我成功构建但是完全无法用10.9.x做到这一点......任何线索?

圣诞快乐

1 个答案:

答案 0 :(得分:1)

实际上,“AuChannelOpen”方法是在frontend / au_channel.h文件中实现的,但它是一种“内联”方法。我认为Makefile禁用了“内联”功能,所以简单的解决方案:

  1. 启用“内联”。
  2. 删除au_channel.h文件中的所有“内联”字样。
  3. 如果你只需要没有程序的静态库,你可以提交在frontend / main.c中调用这个函数的行。