gcc -sharedがOSXでは使えないのでgcc -bundleで

完全に自分用メモです。

gcc libcsv.c -c -o libcsv.o
gcc -shared libcsv.o -o libcsv.so
i686-apple-darwin8-gcc-4.0.1: unrecognized option '-shared'

時たま、この問題にぶつかる。
shared libraryは拡張子が".so"。
OSXNextStepの流れから(?)、共有ライブラリが.bundle(例外もありそう)となっていて、gcc -sharedがoptionとして存在してない。
libcsvでこの問題に出会ったので、以下のようにすると解決した。
Makefile

libcsv.so: libcsv.o
        $(CC) -shared $< -o $@

libcsv.so: libcsv.o
        $(CC) -bundle $< -o $@

とするとうまくmakeできる。

[mako@Akari]make
gcc -bundle libcsv.o -o libcsv.so
ar -rc libcsv.a libcsv.o
ar -s libcsv.a

「"-shared" "-bundle" osx」当たりで検索するとでてくる。