libxml2
VS 2012 のコンパイルとDDK 7
ヘッダーとライブラリへのリンクを使用してライブラリを構築しようとしています。VS 2005 では正常にビルドされますが、VS 2012 ではリンカー エラーが発生します。生成されたシンボルを詳しく調べると -
VS 2005 では、
Found __imp___vsnprintf
Referenced in error.obj
Referenced in xmlreader.obj
Referenced in xmlwriter.obj
Referenced in xmlstring.obj
Loaded msvcrt.lib(msvcrt.dll)
VS 2012では、
error.obj : error LNK2019: unresolved external symbol __imp__vsnprintf
referencedin function ___xmlRaiseError
xmlreader.obj : error LNK2001: unresolved external symbol __imp__vsnprintf
xmlwriter.obj : error LNK2001: unresolved external symbol __imp__vsnprintf
xmlstring.obj : error LNK2001: unresolved external symbol __imp__vsnprintf
__imp__vsnprintf
、__imp___vsnprintf
同じ機能に対してそれぞれ VS 2012 と VS 2005 で ( VS 2005 の_
前に余分なマークがあることに注意してくださいvsnprintf
)。ビルド ログで VS 2005 と VS 2012 のコンパイラ オプションとリンカー オプションを確認しました。どちらも同じです。オプションがコンパイラに渡されると、showIncludes
VS 2005 と VS 2012 の両方でソース ファイルに使用されるヘッダーのセットがまったく同じであることがわかります。
VS 2012 のシンボル生成が異なるのはなぜですか? デフォルトのヘッダーとライブラリに対してコンパイルおよびリンクせずに問題を解決するにはどうすればよいですか?
ありがとう。