Фатальная ошибка rocketmq-cpp LNK1112: тип компьютера модуля 'x64' конфликтует с типом машины назначения 'X86'

Я генерирую rocketmq dll из проекта github rocketmq-cpp с открытым исходным кодом. Я использовал фоллинг Prequisite boost 1.56.0,-> имею сборку с использованием этой архитектуры jam.exe msvc =x86 address-model=64 link=static runtime-link=static этап (который построен на 64 битах) Cmake 3.9.3, поэтому я собираю rocketmq-cpp с помощью cmake -G "Visual Studio 15 2017", он будет генерировать проект, но когда я собираю проект, он всегда показывает ошибку libboost_thread-vc140-mt-s-1_56.lib(thread.obj): фатальная ошибка LNK1112: тип машины модуля 'x64' конфликтует с типом целевой машины 'X86' Но когда я изменил boost 1.56.0 для сборки с использованием 32-битной после этого, я получаю фатальную ошибку ошибка LNK1112 libboost_atomic-vc120-mt-1_58 не найдена. Я не могу найти, как визуальная студия ищет libboost_atomic-vc120-mt-1_58, который не используется в boost 1.56.0/stage/lib.i

1 ответ

Учитывая, что у вас установлен Boost 1.56.0 как 64-битная библиотека, при сборке rocketmq-cppнеобходимо также использовать 64-разрядный генератор для Visual Studio. Очистив существующий каталог сборки, попробуйте использовать cmake -G "Visual Studio 15 2017 Win64" (Обратите внимание Win64 префикс)

См. https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2015%202017.html

Другие вопросы по тегам