2011-11-12 9 views
11

私は別のプロジェクトでプロジェクトを構築しようとしています。そこにはたくさんのライブラリがあり、私は必要な参照されていないシンボルがどこにあるのかわかりません。Visual Studioですべての.libをフォルダに入れる方法

コンパイル中に.lib個のファイルをすべて含める方法はありますか?

私はlibディレクトリをリンカへの追加入力として与えましたが、個々のファイルには.libが含まれているかどうか尋ねられます。このフォルダにすべて.libを含めるというオプションはありますか?

答えて

3

は、私の知る限りそれをする方法はありません。

  • がソースにプラグマディレクティブ経由のlibsを含めるリンカー>入力 - >追加の依存関係の各libが含まれるように、あなたのオプションがありますつまり、ファイル

プラグマコメント(libに、 "some_lib.lib")

を追加
  • プロジェクトは、ソリューションの一部である場合、あなたは「プロジェクトの依存関係」

、それらを選択することができますが、一度だけそれをしなければならないので、それを行うための最も簡単な方法は、プラグマを使用することですデバッグとリリースの両方で使用できます。たとえば、libディレクトリのディレクトリリストを作成してから、残りのディレクティブをソースファイルにコピーしてコピーすることができます。

また、スタティックライブラリのシンボルリストを取得するには、libbinファイル(AFAIRに/ ALLオプションを指定)でdumpbinツールを実行できます。

+0

最近のバージョンのVisual Studioに変更がありましたか?さらに、フォルダをスキャンするためにビルド前のスクリプトを書くことはできませんか? – danijar

+0

私はVS2015を使用しています。リンカー - >入力 - >追加の依存関係に入り、[フォルダ] \ *。libを追加して今日私のために働かせました。 – RomSteady

0

ファイルを出力すると、すべての.libファイルが出力されます。これをコピーして貼り付けるか、必要に応じて修正することができます。

バッチとして保存します。

for %%f in (*.lib) DO echo|set /p=%%~f >> alllibs.txt 
2

あなたはちょうどあなたが

11

bigDの答えが正しいに対してリンクするライブラリを指定する必要があります「someFolder/*。libが」書くことができるはずです。

あなたが実際にVS 2012で、これを行うだろう場所は、少なくとも、プロジェクトを右クリックすることで、その後、行く:

プロパティ]> [構成プロパティ>リンカ>コマンドライン>追加オプション

そのボックスに

、あなただけ入力します。

"[libFolder]\*.lib" 

あなたがスペースで場所を分離することにより、複数の場所を持つことができ、ように:

"[libFolder1]\*.lib" "[libFolder2]\*.lib" 
+0

これはすべてを個別に追加するよりもはるかに簡単でした。しかし、私が必要としないlibsを含めるかどうかはわかりません。 +1は、ハッキングしながら私の時間を節約します。 –

+0

/VERBOSE:UNUSEDLIBSを行に追加して、使用されていないライブラリを取得することもできます。 –

関連する問題