2

ユーザーは、自分が所有していないマシンに Linux スレッド ビルディング ブロックをインストールする必要があると不満を漏らし、多くのホストはインテル スレッド ビルディング ブロックをエンド ユーザーにインストールすることを望んでいないため、動的バージョンの静的バージョンを作成したいと考えています。ライブラリ / プラグイン / モジュール / 拡張 (プラグイン可能な C++ プログラム / dll / so の正しい用語が何であれ)。

Windows では、デフォルトの /MD スイッチ (Multi Threaded DLL )の代わりに /MT (multi threaded) を使用する必要があるため、プログラムに依存関係がないことがわかりました(ただし、windows には並行コンテナー ライブラリがあるため、使用しません)。そこでTBBを使用する必要があります)。

Linuxに相当するものが何であるかわかりませんか?

または、すべてのオプションを把握できる .sln から makefile へのコンバーターが存在する可能性がありますか?

私は Windows で開発していますが、ほとんどのエンド ユーザーは Linux を使用しているため、エンド ユーザーに負担がかからないようにし、オープン ソース リリースを非常に快適に使用できるようにしたいと考えています。

4

2 に答える 2

1

Microsoft C++ コンパイラの/MTフラグにより​​、リンカーは C および C++ ランタイム ライブラリの静的バージョンに対してリンクします。Microsoft は、ランタイム ライブラリの静的バージョンと動的バージョンを出荷しているため、このオプションは、リンクするライブラリのセットを効果的に選択します。このフラグは、サード パーティのライブラリに対するリンクには影響しません。

Linux 側では、-staticスタティック ライブラリを使用するようリンカーに指示するオプションがあります。このオプションは、Windows のようにライブラリ固有ではなく、すべてのライブラリに影響します。ただし、このオプションを使用する場合は、必要なすべてのライブラリの静的バージョンを提供する必要があり、リンカーは動的ライブラリを自動的に変換しません。これには、静的ライブラリとして常に利用できるとは限らないシステム ライブラリとランタイム ライブラリが含まれます。また、Intel TBB も含まれています。Intel が静的ライブラリをその形式で提供していない場合は、おそらく自分でコンパイルする必要があります。

于 2013-07-31T01:30:30.123 に答える
0

ユーザーが Linux マシンにIntel Threading Building Blocks (TBB)をインストールする必要があることを意味していると思います。Intel TBB 機能を使用していて、クライアントがソース コードをコンパイルする必要がある場合は、Intel TBB をインストールする必要があります。別の方法として、クライアントのソース コードをコンパイルし、ソース コードではなくソリューション バイナリのみをクライアントに提供する方法があります。そうすれば、クライアントは TBB をインストールする必要がなくなります。

于 2013-07-17T23:27:33.397 に答える