Ошибка компоновщика - PullRequest
       11

Ошибка компоновщика

0 голосов
/ 26 апреля 2010

Я новичок в boost lib и пытаюсь скомпилировать простой пример того, как сериализация работает с библиотекой boost из http://www.boost.org/doc/libs/1_42_0/libs/serialization/example/demo.cpp

при компиляции я получаю ошибку компоновщика:

1>LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc80-mt-sgd-1_42.lib'

Я также пытался скопировать и поместить файл .lib в каталог проекта, но компилятор VS 8.0 по-прежнему не может ссылаться на него.

1 Ответ

1 голос
/ 26 апреля 2010

Чтобы ответить на вопрос полностью ..

Ошибка происходит из-за автоматических компоновок, реализованных в Boost и сообщающих, что она выбрала автоматическую компоновку версии библиотеки сериализации, которую вы не скомпилировали. Вы можете попробовать скомпилировать другую версию, следуя инструкциям по сборке из исходного кода (см. building from source ). В частности, тег «mt-sgd» в имени библиотеки говорит вам, что он ищет многопоточную среду статической отладки C ++ с отладочной версией библиотеки (см. наименование библиотеки ). Переключение на «/ MDd», как вы сделали, заставляет компилятор переключаться на многопоточную динамическую отладку C ++ (см. Флаги времени выполнения MSVC ), которая является сборкой по умолчанию для Boost. И, следовательно, он находит его, как вы уже построили.

...