0

みなさん、こんにちは!

Linuxでgccを使用して共有ライブラリを作成しています。ライブラリ自体にはコードはありませんが、gccを使用して構築されたいくつかの静的ライブラリ(アーカイブ)へのリンクがあります。共有ライブラリを介して静的ライブラリのシンボルをエクスポートする必要があります。結果として得られる共有ライブラリが小さすぎて、実際には上記の静的ライブラリによって提供されるシンボルが含まれていません。エクスポートされたシンボルのマップも試してみましたが、まったく役に立ちませんでした。誰かが解決策を提案できますか?

事前に10倍

4

1 に答える 1

3

--whole-archiveすべての静的アーカイブをプルするには、リンカーのオプションが必要です。

gcc -shared -o libwhatever.so -Wl,--whole-archive -lstatic -Wl,--no-whole-archive

はリンカーオプションであるため、-Wlが必要です。--whole-archive

これを行うには、libstatic.aのコードが、共有オブジェクトで使用できるように適切にコンパイルされている必要があります(つまり、-fpicそれを必要とするプラットフォームで使用できます)。

于 2010-06-08T05:47:31.587 に答える