198

Linuxダイナミックライブラリ(.soファイル)用のhelloworldプロジェクトを作成しようとしています。だから私はファイルhello.cを持っています:

#include <stdio.h>
void hello()
{
    printf("Hello world!\n");
}

hello()コマンドラインからgccを使用してエクスポートする.soファイルを作成するにはどうすればよいですか?

4

1 に答える 1

367

-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

ワンステップでそれを行う。–ジョナサン・レフラー

-Wallまた、すべての警告を-g取得し、デバッグ情報を取得するために、コマンドに追加することをお勧めしgccます。–バジル・スタリンケヴィッチ

于 2013-02-14T21:14:47.120 に答える