C++相談室 part92

このエントリーをはてなブックマークに追加
714デフォルトの名無しさん
一件知りたいことがあります。力添えをお願いします。 (visual c++もc++もlinuxも経験が浅いです。)
visual c++でXMLを使いたかったため、windows用のlibxmlというライブラリを落として中身みると、
 (1)bin/libxml2.dll (964KB)
 (2)lib/libxml2.lib (369KB)
 (3)lib/libxml2_a.lib (3026KB)
 (4)lib/libxml2_a_dll.lib (3027KB)
というファイルが入っていました。
(3)と(4)はどういったものですか?ファイル名のサフィックスからわかりますか?

(2)をリンクすると、(1)のdllが使われるようです。
少し調べ、挙動的には(2)をインポートライブラリ、(1)を(2)に対応する動的リンクライブラリというものだろうと考えました。

(3)と(4)は、無くても動きました。
(3)について、ファイル名でぐぐると、単体で使われていることもあり、〜aの名前的にも(3)が静的リンクライブラリかと考えました?
そのため、単体でリンクしてみましたが、「error LNK2005: _printf は既に LIBCMTD.lib(printf.obj) で定義されています。」のようなエラーが出たため、考え違いのようです。
いま、英語圏をぐぐっているのですが、あまり英語が堪能ではなく、困っています。

以上、この件で私に不足していると考えられる知識をご存知であれば、御教示お願いします。