6

この警告を読んだ後でも、静的にリンクされたライブラリとして TBB を使用したいとします。(ユーザーが独自の dylib を作成することを許可されていない環境で作業しているふりをします。) しかし、TBB メイクファイルを書き直して、libtbb.dylib の代わりに libtbb.a を生成したくはありません。

同じエントリ ポイントで libtbb.dylib を libtbb.o に変換する簡単なコマンド ラインの方法はありますか?

静的から動的への方向への移行は不可能であるという良い議論を聞いたことがあります。つまり、動的ライブラリは PIC である必要があり、非 PIC 静的ライブラリを PIC に変換することはできません。しかし、私の知る限り、その議論は他の方向には当てはまりません。

Windows で .dll を .a に変換することは不可能だと言っている人がいますが、.dll または .exe を元の .o ファイルに戻すことは不可能であると言っているだけであり、必ずしも不可能だと言っているわけではありません。同じ内容のリンク可能な .o ファイルを作成します。また、Windows の状況は「実際の」 PIC よりも少し奇妙ですが、それは関係ないと思います。

4

1 に答える 1

10

Intel Threading Building Blocks (TBB) は、Windows、Mac、および Linux 用のバイナリとして利用できます。libtbb.dylibiOS で Mac ディストリビューションから使用することを期待している場合は、運が悪いです。Mac ディストリビューションは、Intel (32 および 64 ビット) を対象としています。iOS は ARM プロセッサ上で動作するため、動的ライブラリを静的ライブラリに変換する方法を見つけたとしても、iOS を使用することはできませんでした。

libtbb.dylibARM を対象とした別の場所でファイルを見つけた場合は、おそらく iOS で使用できます。実際、動的ライブラリを iOS にロードすることは可能です。dlopen(3)の man ページを見てください。

最後に、 iOS および OS X のマルチコア ハードウェアでの同時コード実行の組み込みサポートであるGrand Central Dispatch (GCD)について読む必要があります。

于 2012-09-03T11:21:22.103 に答える