2017-04-11 57 views
3

我用ITK 4.11和OpenCV-3.2在我的C++項目,之一在一起的時候我編譯項目,我得到一個錯誤,指出:如何解決libpng函數已經定義的錯誤?

錯誤1個錯誤LNK2005:png_get_uint_31已經itkpng 4.11定義.LIB(pngrutil.obj)」

我ITK和OpenCV使用多線程DLL(/ MD),再建兩個,我應該怎麼做才能避免這個錯誤?

回答

1

如果我沒記錯正確地說,我通過使用/ FORCE鏈接器選項解決了確切的問題。更多信息here

+0

謝謝Dženan,在Visual Studio中使用/ FORCE完美地解決了這個問題。 –

+0

另外,最近有人遇到了這個問題,並提出了一個補丁來修復ITK的部分:http://review.source.kitware.com/#/c/22282/ –

+0

是Dženan。在ITK文件「Modules/ThirdParty/PNG/src/itkpng/itk_png_mangle.h」中添加一行「#define png_get_uint_31 itk_png_get_uint_31」肯定是更好的解決方案!再次感謝你。 –

相關問題