たとえばBoostで。私はディレクトリをMSVC++ 2010のBoostルートディレクトリに設定し、ソースコードに#include <boost/regex.hpp>
を設定しました。どのような.libにどの関数が含まれているかをC++リンカーがどのように知っていますか?
libboost_regex-vc100-s-1_46.lib libboost_regex-vc100-mt-gd-1_46.lib libboost_regex-vc100-mt-1_46.lib libboost_regex-vc100-mt-s-1_46.lib libboost_regex-vc100-mt-s.lib libboost_regex-vc100-s.lib libboost_regex-vc100-mt.lib libboost_regex-vc100-mt-gd.lib
どうMSVCは、右のすべてのlibファイルのどの知っているん:ブーストのために、各Boostライブラリのためのいくつかのこれらの::正規表現を - 私はboost\stage\lib
にライブラリディレクトリを設定しますが、ファイルの数百人がそこにあります1?それが正しい関数シグネチャをすべてスキャンした場合、同じ名前とパラメータを持つ関数を定義する2つの異なるソース(互いにリンクされていない)からコンパイルされた2つの異なるライブラリが1つのlibフォルダに存在しないことを意味しますか?
そして、どのようにそれらの正規表現.libの中で正しいことが分かっていますか?そして、ファイル名に1_46
の各ファイルはそれぞれのファイルと同じではないようですが、2つのうちの1つを安全に削除できますか?
'regex.hpp'を見れば、何十個もの' #pragma library'ステートメントが見つかるでしょう。(正確な構文は忘れてしまいます) –