kuroの覚え書き

96の個人的覚え書き

gcc コンパイラ



数日前からffmpegを自前でビルドしようと思い、いろいろと足掻いていたのだがうまくいっていなかった。まず何はともあれ、wgetをインストールしようと思い

GNU wget wget-1.10.2.tar.gzをダウンロードしてきてホームにおき


$ tar zxvf wget-1.10.2.tar.gz
$ cd wget-1.10.2
$ ./configure
$ make
$ sudo make install

とお決まりのインストールをやろうとしたらどういう訳かいきなりエラーが出てビルドできなかった・・・なぜ?

だもんでとりあえず面倒だけどwgetはおいといてlameあたりから一個ずつSafariでダウンロードしてインストールする方針にしてみた。ちなみにflvからMPEG4に変換する用途なら多分MP3はいらないんじゃないかという気もするが、念のためlame, amrnb, amrwb, faad2, faac, x246, Xvidをインストールしてからffmpegをビルドするつもり。携帯動画もいらないんだけどね。念のため、万能変換を目指します。

で、早速lameをダウンロードしてきてインストールしようとしたところ、これもやっぱりエラーが出て止まってしまう。


$ tar zxvf lame-3.97.tar.gz
$ cd lame-3.97
$ ./configure
$ make
$ sudo make install

makeで下のようなエラーが出て止まり、make installも当然うまく行かない。なじぇ?


make all-recursive
Making all in mpglib
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I. -I../libmp3lame -I.. -O3 -ffast-math -funroll-loops -Wall -fno-common -MT common.lo -MD -MP -MF ".deps/common.Tpo" -c -o common.lo common.c; ?
then mv -f ".deps/common.Tpo" ".deps/common.Plo"; else rm -f ".deps/common.Tpo"; exit 1; fi
rm: .libs/common.o: Permission denied
rm: .libs/common.o: Permission denied
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I. -I../libmp3lame -I.. -O3 -ffast-math -funroll-loops -Wall -fno-common -MT common.lo -MD -MP -MF .deps/common.Tpo -c common.c -fno-common -DPIC -o .libs/common.o
In file included from common.c:4:
../config.h:73: warning: use of `long double' type; its size may change in a future release
../config.h:73: warning: (Long double usage is reported only once for each file.
../config.h:73: warning: To disable this warning, use -Wno-long-double.)
/var/tmp//ccYdOf6u.s:unknown:FATAL:can't create output file: .libs/common.o
make[2]: *** [common.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


仕方がないので一旦make cleanして対策を考える。

といっても特にアイデアもないので一からのビルドを諦めてFinkMacPortsからバイナリをインストールすることにした。

で、まずMacPortsが最近の流行なようなのでダウンロードしてインストールしてみた。しかしMacPortsダウンローダとしてrsyncコマンドを使っているようだがこれが某所のファイアウォールを突破できないっぽいので結局手も足もでず撤退。

そこで仕方なくFinkもインストールした。Finkはコンフィグをいじることでproxyを設定できたので使えそうな気がした。


$ fink configure

で、設定するのはHTTP proxyのところを


ProxyHTTP: http://yourhost.com:8080/

という感じに入れてやればOK

さてさてこれで問題なくインストールできるだろうと


$ apt-get install wget

と試しにwgetをインストールしてみるときちんとインストールが出来た。そこでlameも〜と思ってapt-getしてみたところバイナリが登録されてないでやんの・・・

いやな予感とともに


$ fink install lame

としてやるとやっぱり・・・makeでこける。こりゃコンパイラに問題があるのかいなと思いつつ念のため


$ fink -b install lame-dev

と違うコードを-bオプション付きでビルドしてやろうとがんばってみる。すると・・・なんか「このgccのバージョンだとエラーが出るかもしれんがやってみるか?[y/N]」みたいなアラートが出てるじゃんか。あれえ?OSX10.4.10の最新バージョン入れてるはずなんだけどなあ。と思いつつ


$ gcc -v
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)

あちゃー。OSXpantherからtigerにバージョンアプした時に面倒くさがってXcodeをそのまま放置していたってことだわ。これ。

つことでXcodeを2にアップしたところすんなり解決。これならわざわざFinkなんぞ入れんでも良かったんじゃないだろうか。


現在faad2でツマヅキ中。libtoolとかautoconfとか要るらしい・・・

続く