1


0

ヘッダーからリンクフラグを推測する方法はありますか?

C / CPPファイルの一部に特定のヘッダーが含まれていることを知っているとしましょう。推測する以外に、リンクする必要があるライブラリに対して信頼できる情報はありますか?

たとえば、次のようなものがある場合

#include "foo.h"

そして見つけたい

libfoo_abcdef_123.so

それを行うための「ベストプラクティス」はありますか?

3 Answer


6


ここでの他の答えが言っているにもかかわらず-いいえ、ありません。 ライブラリは同じ関数を再定義することができます(そしてそうすることもあります)。そのような衝突を解決しようとすることができるのは、ヘッダーファイルに関するzipを知っているリンカーだけです。


1


これはすべてに機能するわけではありませんが、独自のヘッダーを使用している場合(たとえば、モジュラープログラム)、ヘッダーにライブラリ名を含めることができます。

これはVisual Studioで特に便利です。VisualStudioでは、ライブラリヘッダーで `#pragma comment(lib、" thismodule.lib ")`を実行でき、ライブラリを含むコードを心配する必要はありません。 他のプラットフォーム/コンパイラでは、同様のコマンドが見つかる場合があります。

ただし、優れたサードパーティライブラリには、何を含めるかについての指示が必要です。


1


_ C / CPPファイルの一部に特定のヘッダーが含まれていることを知っているとしましょう。推測する以外に、リンクする必要があるライブラリに対して信頼できる情報はありますか? _

実際はそうではありませんが、通常、使用している関数/クラスのドキュメントにそのような情報があります。