内部で dlopen を使用して共有ライブラリ libabc を動的にロードして実行する abc という小さな C プログラムがあります。libabc は、実行時に動的に読み込まれて呼び出される関数 greeting を宣言します。次の 2 つの方法でコンパイルして実行すると、結果は同じになります。共有オブジェクト (.so) C ライブラリを作成するときの GCC コンパイラの -shared フラグと -bundle フラグの違いは何ですか?
方法 1
cc -c libabc.c -o libabc.o
cc **-shared** -o libabc.so libabc.o
cc -Wall -g abc.c -ldl -o abc
./abc ./libabc.so greeting "Hello World"
方法 2
cc -c libabc.c -o libabc.o
cc **-bundle** -o libabc.so libabc.o
cc -Wall -g abc.c -ldl -o abc
./abc ./libabc.so greeting "Hello World"
ダーウィン gcc 4.2 の使用