Я скачал Повысьте эффективность Binaries от здесь. Мой проект зависит от boost_system
и boost_filesystem и строит правильно, если я добавляю правильные зависимости к параметрам компоновщика при использовании Visual Studio для компиляции, но теперь я пытаюсь скомпилировать в Code :: Blocks (компилятор MinGW) и работать со следующим:
"directve '/FAILIFMISMATCH:"_MSC_VER=1800" /FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0" /FAILIFMISMATCH:"RuntimeLibrary=MD_DynamicRelease" /DEFAULTLIB:"msvcprt" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" "
Хотя это предупреждение, это мешает мне найти зависимости, потому что мой проект не может построить с undefined reference to 'boost::system::generic_category()'
и множество других связанных неопределенных ссылок.
Вопрос: Должен ли я компилировать Boost из источника с помощью MinGW, чтобы решить мою проблему?
Конечно, я использую соответствующие библиотеки для моей конфигурации сборки (Release, dynamic runtime library).
Я делаю answser, основанный на комментариях, размещенных ниже моего вопроса, только чтобы сделать все правильно.
Таким образом, повышение уровня исходного кода с использованием одного и того же компилятора (я использовал TDM-GCC с gcc 4.8.1) действительно решал проблемы с привязкой.
Как отметил Rup, один "не может смешивать C++, скомпилированный с GCC и Visual Studio: они имеют разные реализации C++ ABI и генерируют разные" искажения "имен идентификаторов, чтобы символы компоновщика не совпадали".
Дополнительная ссылка: Взаимодействие библиотек, созданных разными брендами компилятора