2010-12-14 15 views
1

other questionの基本的な質問は次のとおりです。LIB.EXEコマンドを使用して.libファイルを抽出せずに、すべての.objアーカイブメンバーを結合して、1つの大きなモノリシック.libファイルを作成しますか? LIB.EXEまたはLINK.EXEユーティリティを使用すると、他の.objファイルで必要とされる省略された.objファイルにシンボルが定義されていないため、一部の.objファイルが省略されます。.libファイルを抽出せずにVS2008 SP1を使用して複数の静的.libファイルを1つのモノリシック.libファイルにリンクする

他のMicrosoft以外のソフトウェアをダウンロードしてインストールすることなく、最初にすべての.objファイルを展開せずに、どうすればそれらを組み合わせることができますか?

答えて

1

できません。

static-link .libファイルは、いくつかのオブジェクトファイルを含むzipfileまたはtarfileと考えてください。

lib/listを使って内容が何であるのかを調べ、lib/extractを使って各オブジェクトを抽出する必要があります(1つずつ、退屈な部分です)。新しい.libをビルドします。

スクリプト言語(Perl、Pythonなど)を使用すると便利です。この作業を自動化するのは難しくありません。あなたが望むならば、バッチコマンドでそれを行うことができます( "for/F"を探してください;あなたはそれを必要とします)。

+0

ありがとう、tangobravomike。あなたと同じ結論に達しました。あるケースでは、上記の方法で静的ライブラリの抽出と再リンクをスクリプト化しましたが、動作確認のためのストップ・ギャップでしたが、後で中間の「モノリシック」静的ライブラリを削除して代わりに試してみますモノリシックなlibを「抽出して再リンクする」よりもかなりオーバーヘッドが少なくなるように思われるので、最後のDSOリンクの補助静的ライブラリへの直接リンクを行うことができます。 :) – bgoodr

関連する問題