2011-01-14 106 views
3

有没有人为Solaris 10 sparc编译过ffmpeg 0.6.1?我收到以下错误:无法在Solaris 10上编译ffmpeg sparc

uname -a 
SunOS SERVERNAME 5.10 Generic_118833-36 sun4u sparc SUNW,Sun-Fire-V440 

[email protected]>/export/home/USERID/ffmpeg-0.6.1/configure --prefix=/export/home/USERID/ffmpegX --extra-cflags="-fPIC" --disable-mmx --disable-protocol=udp --disable-encoder=nellymoser 
Broken shell detected. Trying alternatives. 
Trying shell bash 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
Unknown C compiler gcc 
awk: syntax error near line 1 
awk: illegal statement near line 1 
grep: illegal option -- q 
Usage: grep -hblcnsviw pattern file . . . 
install prefix   /export/home/USERID/ffmpegX 
source path    /export/home/USERID/ffmpeg-0.6.1 
C compiler    gcc 
.align is power-of-two no 
ARCH      sparc (generic) 
big-endian    no 
runtime cpu detection  no 
VIS enabled    yes 
gprof enabled    no 
debug symbols    yes 
strip symbols    yes 
optimizations    yes 
static     yes 
shared     no 
postprocessing support no 
new filter support  no 
filters using lavformat no 
network support   yes 
threading support   no 
SDL support    no 
Sun medialib support  no 
AVISynth enabled   no 
libdc1394 support   no 
libdirac enabled   no 
libfaac enabled   no 
libfaad enabled   no 
libfaad dlopened   no 
libgsm enabled   no 
libmp3lame enabled  no 
libnut enabled   no 
libopencore-amrnb support no 
libopencore-amrwb support no 
libopenjpeg enabled  no 
librtmp enabled   no 
libschroedinger enabled no 
libspeex enabled   no 
libtheora enabled   no 
libvorbis enabled   no 
libvpx enabled   no 
libx264 enabled   no 
libxvid enabled   no 
zlib enabled    no 
bzlib enabled    no 

Enabled decoders: 
pr: -- empty file 

Enabled encoders: 
pr: -- empty file 

Enabled hwaccels: 
pr: -- empty file 

Enabled parsers: 
pr: -- empty file 

Enabled demuxers: 
pr: -- empty file 

Enabled muxers: 
pr: -- empty file 

Enabled protocols: 
pr: -- empty file 

Enabled filters: 
pr: -- empty file 

Enabled bsfs: 
pr: -- empty file 

Enabled indevs: 
pr: -- empty file 

Enabled outdevs: 
pr: -- empty file 

License: LGPL version 2.1 or later 
Creating config.mak and config.h... 
[email protected]> gmake 
/export/home/USERID/ffmpeg-0.6.1/version.sh: syntax error at line 4: `revision=$' unexpected 
CC  libavdevice/alldevices.o 
libavdevice/alldevices.c: In function `avdevice_register_all': 
libavdevice/alldevices.c:42: error: `CONFIG_ALSA_OUTDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:42: error: (Each undeclared identifier is reported only once 
libavdevice/alldevices.c:42: error: for each function it appears in.) 
libavdevice/alldevices.c:42: error: `CONFIG_ALSA_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:43: error: `CONFIG_AUDIO_BEOS_OUTDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:43: error: `CONFIG_AUDIO_BEOS_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:44: error: `CONFIG_BKTR_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:45: error: `CONFIG_DV1394_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:46: error: `CONFIG_JACK_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:47: error: `CONFIG_OSS_OUTDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:47: error: `CONFIG_OSS_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:48: error: `CONFIG_V4L2_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:49: error: `CONFIG_V4L_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:50: error: `CONFIG_VFWCAP_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:51: error: `CONFIG_X11_GRAB_DEVICE_INDEV' undeclared (first use in this function) 
libavdevice/alldevices.c:54: error: `CONFIG_LIBDC1394_INDEV' undeclared (first use in this function) 
gmake: *** [libavdevice/alldevices.o] Error 1 
[email protected]> exit 

script done on Fri Jan 14 11:34:05 2011 

回答

2

不幸的是,Solaris /usr/bin/grep does not support the -q flag,看起来您需要设置路径为GNU grep或符合POSIX标准的/usr/xpg4/bin/grep作为grep命令。谷歌还可以找到一些补丁来解释人们为解决这个问题而编写的ffmpeg。

这个problem的ffmpeg作者know,但拒绝更改它们的配置脚本,因为它们依赖于POSIX合规性。

0

它看起来像构建脚本希望找到GNU版本的助手像grep。确保它拿起正确的,例如如果您安装了the Sun Freeware package,则将grep别名为/usr/sfw/bin/ggrep

+0

谢谢,我会试试这个 – Raoul 2011-01-26 10:42:43

+0

我试着通过创建一个别名:alias grep ='/ usr/sfw/bin/ggrep'然后重新配置,我仍然得到上面的错误。你还有什么建议我尝试?谢谢。 – Raoul 2011-01-26 11:07:53

4

1.-确保GCC正在安装

install gcc if needed 
# pkg search gcc 
# pkg install pkg:/developer/[email protected] 

2:确保山药安装

install yams if needed 
download from http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz 
unzip, untar in local dir 
#./configure 
#make install 
add the path 
# PATH=$PATH:/usr/local/bin 

3.-确保GNU确保安装

Installed if required 
# pkg search gnu make 
# pkg install pkg:/developer/build/[email protected] 

4.-确保它提取正确的grep

e.g. by aliasing grep to /usr/sfw/bin/ggrep if you have the Sun Freeware package installed 

5.-下载源代码:http://ffmpeg.org/releases/ffmpeg-1.0.tar.gz

a.- unzip, untar in local dir 
b.- edit configure 
    1.- replace awk by nawk 
    2.- follow the patch configuration from https://trac.handbrake.fr/browser/trunk/contrib/patch-ffmpeg-solaris.patch?rev=1531 
     Some details about the reasons here : http://www.techques.com/question/1-4690966/can't-compile-ffmpeg-on-Solaris-10-sparc 
     Be careful the line numbers are not valid for version 1.0 
     place the modifications suggested accordingly 
c.- #./configure 
d.- # gmake 

诺埃尔Jaffré

0

在这个题目我终于安装的ffmpeg 2.2.2在Solaris SPARC 5.1花费几个小时后。步骤:从 http://www.ffmpeg.org/download.html

  • 的最新版本

    • 下载焦油源提取tar
    • grep的应该是指GGREP - 别名的grep =的/ usr/sfw/bin中/ ggrep
    • 使用bash,而不是sh - 第一行配置和版本.sh 文件需要修改
    • 使用nawk代替awk
    • 配置处理隐式函数声明警告作为错误。 这可能会导致问题 - 我不得不将它设置回警告级别为 它导致关于缺少的引用(这是一个 标准库,所以它不应该是一个问题)的错误
    • 关于4-6点适用以下命令
    • sed 's/\/bin\/sh/\/bin\/bash/' configure > configure.mod
    • sed 's/awk/nawk/' configure.mod > configure.mod2
    • sed '/implicit-function-declaration/d' configure.mod2 > configure.mod3

    • cp configure.mod3 configure

    • sed 's/\/bin\/sh/\/bin\/bash/' version.sh > version.sh.mod
    • cp version.sh.mod version.sh

    • 运行配置

    • 配置--extra-CFLAGS = “ - 子卡” - 禁用MMX --disable协议UDP = --disable编码器=得到Nellymoser - 禁用调试--arch = SPARC --target-OS =的SunOS

    • 使用gmake安装

    • 开始的ffmpeg:./ffmpeg