5

ロード可能なモジュールとしてコンパイルされた、つまりlibtoolの-moduleフラグにリンクされたいくつかのライブラリを使用したプロジェクトを手元に持っています。これらのライブラリには、必要なすべての関数がそれ自体またはその依存関係に含まれている必要があります。つまり、プログラムのモジュール インターフェイスのすべての関数を単に呼び出す単純な main() 関数とリンクすると、完全なプログラムが生成されるはずです。

以前に不完全で使用できないモジュールに問題があったため、main() だけを含み、モジュールに対してリンクされているいくつかの単純なチェック プログラムがあります。関数が欠落している場合、リンカーは適切な警告を発するので、すべて問題ありません。ただし、libtool から 1 つの警告が表示されます。

*** Warning: Linking the executable checkplugin_locprec against the loadable module
*** liblocprec.so is not portable!

この警告の目的と意図は理解していますが (プログラムを でビルドされたライブラリにリンクしないでください-module)、その重大度については理解していません。それが私の質問です:

この警告はどの程度深刻ですか? 私がコンパイルしているプラ​​ットフォーム (i386/x86_64 Linux および MinGW) でこれが機能するのは幸運でしょうか?それとも、この警告は、私が安全に無視できるあいまいなバックウッド プラットフォームに関連しているだけなのでしょうか?

4

1 に答える 1

2

これが機能しない主なプラットフォームは Mac OS X です。他のプラットフォームでは、通常は機能するはずですが、使用する他のビルド オプションによっては失敗する場合があります。libtool を使用した場合は、おそらく他のプラットフォームでも安全です。

于 2011-10-03T03:01:51.320 に答える