2017-03-05 12 views
0

リンカーの設定では、コンパイラにどの.libファイルを含めるべきかを指示する必要があります。私が把握していない簡単なことは、サードパーティのソフトウェアを使用しているときにどの機能が.libファイルにあるのかを知る方法です。どのような.libファイルがどの機能に対応しているのでしょうか?

例: 最近、膨大な数の.libファイルを持つQtを使用していました。最も明白な名前を持つ人を試した後、私は正しいものを見つけるまで試行錯誤してそれらをすべて通過しなければならなかった。私はこの情報がQtのドキュメントにあると思っていましたが、それを見つけることができませんでした。私はまだ自分のことを教える初心者なので、このような簡単なものが私を渡します。

+0

* .libファイル内の関数の名前を単純に検索することができます – RbMm

答えて

1

基本的なアプローチは2つあります。

最初のオプションは、サードパーティのライブラリのドキュメントを読むことである(Microsoftはこれで非常に良いです - 。。彼らはあなたがそれぞれの機能に必要なライブラリとヘッダーを含めることはQtがあまり良くないようです)

第2の選択肢は、hereと記載されているようにDUMPBINで各ライブラリの名前をリストすることです。

コメントに記載されているように、2番目のオプションの変形は、関数名のプレーンテキストの.libファイルをgrepすることです。これは、どの.libファイルが関数を定義するか、それを呼び出すかを指示します。唯一のものがあれば、あなたは完了です。複数の場合は、返されたすべてのファイルに対してDUMPBINを実行して、それがどのファイルを定義しているかを確認する必要があります。

+0

もちろん、 'somelib.lib'ごとに' link.exe -dump/EXPORTS "somelib.lib"> somelib.log'を実行できます私たちは多くのライブラリを持っていますか?毎日これをやる? (名前が大文字と小文字の区別) – RbMm

+0

はい、そうでない場合は、 .lib *が呼び出されたときにテキストが表示されることに注意してください(また、それはうまくいきません) *関数を定義するのではなく、*定義しています。 –

+0

同じフォルダに置かれた通常のすべてのlibを検索する必要があるので、すべての* .libファイルをテキスト 'myfunction'で検索します。 。もし1つ以上の結果が得られるなら(まれに) – RbMm

関連する問題