Linuxダイナミックライブラリ(.soファイル)のHello Worldプロジェクトを作成しようとしています。だから私はファイルhello.cを持っています:
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
コマンドラインからgccを使用して、hello()
をエクスポートする.soファイルを作成するにはどうすればよいですか?
共有ライブラリを生成するには、最初に-fPIC
(位置独立コード)フラグを使用してCコードをコンパイルする必要があります。
gcc -c -fPIC hello.c -o hello.o
これにより、オブジェクトファイル(.o)が生成されます。これを取得して、.soファイルを作成します。
gcc hello.o -shared -o libhello.so
編集:コメントからの提案:
使用できます
gcc -shared -o libhello.so -fPIC hello.c
ワンステップでそれを行います。 – ジョナサンレフラー
gcc
コマンドに-Wall
を追加してすべての警告を取得し、-g
を追加してデバッグ情報を取得することもお勧めします。 – Basile Starynkevitch