2016年3月10日木曜日

OpenCV3.0 で already defined の LINK error

OpenCV3.0に変更した際にでた山のようなLinker Error. 下のような感じ。

Error 1 error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) already defined in foo.lib(foo.obj) C:\foo\msvcprtd.lib(MSVCP120D.dll) footest

どうやら2回定義しているらしい。ってことで、以下のことをしたら治りました。なんで治ったか、面倒で考察はあと。

1.
C++ -> Code Generation
  Runtime Library を Multi-threaded Debut(/MTd)
に変更

2.
Linker->input
 Ignore Specific Default Libraries に LIBCMTD.lib
を加える。

reference:
http://stackoverflow.com/questions/8498291/standard-library-already-defined-in-lib-causing-linker-error
https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx

0 件のコメント:

コメントを投稿