2011-01-25 5 views
0

Я получаю сообщение об ошибке времени fatal error LNK1104: cannot open file 'libboost_serialization-vc80-mt-gd-1_44.lib' Недавно я загрузил boost, который пришел с boost_serialization-vc80-mt-gd-1_44.lib, но компилятор, похоже, ищет один, начиная с libboost, поэтому я переименовал его. но тогда он не может найти .dll во время выполнения. Я попытался переименовать dll, но, похоже, это не помогает.Ссылка на boost .lib

Во время загрузки дллы: An unhandled non-continuable STATUS_DLL_NOT_FOUND exception was thrown during process load

+0

вы используете Visual Studio? Вы проверили параметры своего проекта, чтобы увидеть, где компоновщик ищет библиотеки, и какие библиотеки, к которым пытается подключиться ваш проект? – birryree

+0

Да. Я добавил папку библиотеки boost, она ссылается на .lib после того, как я переименовал, но не смог найти .dll в той же папке, что и lib – user244225

ответ

3

Есть много различных версий каждой библиотеки повышающей: многопоточный, однопоточный, статический, динамический и т.д. Те, которые начинаются с «Lib» являются статическими библиотеками, без «lib» - это файлы lib, используемые для ссылки на версии DLL. Вы можете увидеть это, посмотрев размер файла lib.

Если вы используете автоматическое соединение, это означает, что компоновщик ищет статическую версию сериализации. Если у вас нет такого файла, значит, вы его не создали. Другой альтернативой является использование установщика, доступного по адресу http://www.boostpro.com. Он позволяет вам выбирать, какие библиотеки ускорения (статические, динамические, ST, MT, VS Version и т. Д.) Для загрузки и установки.

Другой вариант отключить автосвязывающим: см этот пост в списке рассылки повышающего: http://lists.boost.org/boost-users/2005/12/15697.php

Смежные вопросы