[解決済み] gccコマンドラインを使用して.cファイルから.soファイルをビルドする。
2022-04-21 05:33:34
質問
Linuxのダイナミックライブラリ(.soファイル)用のhello worldプロジェクトを作成しようとしています。そこで、hello.cというファイルを持っています。
#include <stdio.h>
void hello()
{
printf("Hello world!\n");
}
をエクスポートする .so ファイルを作成するには、どうすればよいですか?
hello()
コマンドラインから gcc を使用していますか?
解決方法は?
共有ライブラリを生成するには、まず、Cコードを
-fPIC
(位置独立コード)フラグを設定します。
gcc -c -fPIC hello.c -o hello.o
これでオブジェクトファイル(.o)が生成されるので、それを受け取って.soファイルを作成します。
gcc hello.o -shared -o libhello.so
EDIT : コメントからのご提案
を使用することができます。
gcc -shared -o libhello.so -fPIC hello.c
を使えば一度にできます。- ジョナサン・レフラー
を追加することをお勧めします。
-Wall
ですべての警告を取得し
-g
を使用して、デバッグ情報を取得します。
gcc
コマンドを使用します。-
バジーレ・スターリンケヴィッチ
関連
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] bashで "cat << EOF "はどのように動作するのですか?
-
[解決済み] Python の open() はファイルが存在しない場合、ファイルを作成しない
-
[解決済み] C言語で "unsigned long "をprintfする方法は?
-
[解決済み] テキストファイルの行末を調べるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
error: '.' トークンの前にunqualified-idを指定する必要があります。
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
initializer element is not constant "というエラーが表示されるのですが?
-
未定義の `__isoc99_sscanf' への参照
-
C 言語のポインタ配列のポインタ型、ポインタに値を割り当てるために配列名を使用、コンパイル時の警告:互換性のないポインタ型からの初期化
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?