1

プロジェクトに動的にリンクする必要があるライブラリを構築しています。出力は .so ファイルなので、正しい軌道に乗っていると思います。コンパイル時にリンクされる方法が気になります。makefile の場所を指定し、これまでに見たことのない一連のマクロに依存しています。

実際に動的にリンクしている.soライブラリ(.aではなく)を構築していると思いますか?または、.so ライブラリを静的にリンクすることは可能ですか? その場合、何が起こっているのかをよりよく理解するために、make/config ファイルをバラバラにする必要がありますか?

ありがとう、

アンドリュー

4

1 に答える 1

0

私は実行可能ファイルと共有オブジェクトの内部構造に詳しくないので、いくつかの実用的なヒントしか提供できませんでした。

を使用すると仮定すると、オブジェクト ファイルをライブラリにリンクするときにオプションがgcc必要です。この方法(によって呼び出される) は、実行可能バイナリの代わりに共有オブジェクトを作成します。-sharedldgcc

gcc -shared -o libabc.so *.o ...

この libabc.so でいくつかのアプリケーションをリンクすると、エラーなしでリンクされ、その後コマンドでその依存関係lddを確認できるはずです。libabc.so

$ ldd app
    ...
    libabc.so => ...............
于 2010-12-14T10:54:33.600 に答える