Конфликт между Boost, Библиотеки OpenCV и Eigen?

мой вопрос в некоторой степени связан с Статическое связывание библиотек Boost и OpenCV с Eclipse CDR . ошибок , в то время как я пытаюсь сделать немного больше, чем описано здесь: Как создать программу, которая может читать все изображения в папке с помощью Boost и OpenCV? , а именно перемещаться по каталогу с помощью Boost's файловой системы и выполнить некоторую обработку файлов изображений с помощью OpenCV.

Я скомпилировал файловую систему и другие библиотеки с помощью MinGW и попытался запустить Boost 1.45, OpenCV 2.2 и Eigen2 с Eclipse CDT в 64-разрядной системе Windows 7. Библиотека файловой системы компилируется и запускается без проблем, если используется в проекте сама по себе, но в сочетании с двумя другими библиотеками, указанными выше, я получаю следующие ошибки:

In file included from C:\boost_1_45_0/boost/filesystem/v3/path_traits.hpp:22:0, 
                 from C:\boost_1_45_0/boost/filesystem/v3/path.hpp:25, 
                 from C:\boost_1_45_0/boost/filesystem.hpp:32, 
                 from ..\src\ComputeNatScaleFunction.cpp:18: 
C:\boost_1_45_0/boost/type_traits/decay.hpp: In instantiation of 'boost::decay >': 
C:\cmake_binaries\include/opencv2/core/operations.hpp:766:23:   instantiated from here 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error: 'cv::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error:   trying to instantiate 'template struct boost::remove_reference' 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error: 'cv::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error:   trying to instantiate 'template struct boost::remove_reference' 
C:\boost_1_45_0/boost/type_traits/decay.hpp: In instantiation of 'boost::decay >': 
C:\cmake_binaries\include/opencv2/core/operations.hpp:917:21:   instantiated from here 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error: 'cv::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error:   trying to instantiate 'template struct boost::remove_reference' 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error: 'cv::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error:   trying to instantiate 'template struct boost::remove_reference' 
C:\boost_1_45_0/boost/type_traits/decay.hpp: In instantiation of 'boost::decay >': 
C:\Eigen2/Eigen/src/Core/GenericPacketMath.h:116:18:   instantiated from here 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error: 'Eigen::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:28:66: error:   trying to instantiate 'template struct boost::remove_reference' 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error: 'Eigen::' is/uses anonymous type 
C:\boost_1_45_0/boost/type_traits/decay.hpp:38:17: error:   trying to instantiate 'template struct boost::remove_reference' 

и т. Д.

Есть какие-нибудь намеки на то, почему эти библиотеки могут конфликтовать друг с другом? Компилятор не обходится без включения файловой системы (т.е. строки 18).

8
задан Community 23 May 2017 в 10:27
поделиться