Помогите собрать и использовать библиотеки boost c ++ - PullRequest
6 голосов
/ 14 октября 2010

Я работаю над проектом C ++, где я хотел бы использовать библиотеки сериализации boost.Я скачал и установил последние библиотеки Boost с домашней страницы Boost.

Когда я попытался скомпилировать и запустить один из примеров демонстрационной сериализации boost, я получил все виды ошибок, которые выглядели так:помощь будет оценена.

Спасибо

Ответы [ 3 ]

12 голосов
/ 14 октября 2010

Предположительно, вам нужна ссылка на библиотеку сериализации. Посмотрите в /usr/lib что-то с именем, похожим на libboost_serialization. Затем скажите g++ (вы не сказали, какой компилятор вы используете) вы хотите использовать (ссылку на) эту библиотеку:

g++ main.cpp -lboost_serialization

т.е. если имя библиотеки /usr/lib/libboost_serialization.a, вы пропускаете начальный lib и расширение.

Удачи!

5 голосов
/ 14 октября 2010

Спасибо всем за вашу помощь.Я наконец-то решил свою проблему, хотя мое решение довольно анти-климатическое и, вероятно, не настолько информативное.

Я попытался установить библиотеки boost вручную, загрузив их напрямую с веб-сайта boost, и обнаружил, что все библиотеки были установлены в / usr / local / lib и / usr / local / include / boost/.После многократных ошибок, с которыми я столкнулся, я решил посмотреть, сможет ли менеджер пакетов Synaptic «лучше» выполнить установку буст-библиотек.Я выбрал «libboost1.40-all-dev», чтобы установить все, но все равно ничего не работало.

Наконец, я решил начать заново, поэтому вручную удалил каталог boost / в / usr / local / include, иЯ удалил все файлы libboost в / usr / local / lib.Затем я отметил все библиотеки надстроек для полного удаления, чтобы удалить все.После того, как все библиотеки бустов были удалены, я вернулся в Synaptic Package Manager, еще раз выбрав «libboost1.40-all-dev».

Я не уверен, что именно изменилось, когда я переустановилбиблиотеки снова, но все снова заработало.Сначала я проверил из командной строки и попытался скомпилировать demo.cpp с сайта boost еще раз с помощью следующей команды:

g++ demo.cpp -lboost_serialization

, и он сразу скомпилировался.Запуск исполняемого файла отображал именно те результаты, которые я искал.Кроме того, я переместил файл обратно в свой проект Eclipse, добавил «boost_serialization» в библиотеки Linker и попытался построить проект.Все снова заработало идеально, так как я мог собрать проект и запустить пример кода.

У меня нет точного объяснения, почему это решило мою проблему, но всем, кто испытывает подобные проблемы, лучший совет, который яможет дать НЕ устанавливать напрямую библиотеки надстроек, а иметь диспетчер пакетов Synaptic для обработки всего.

Еще раз спасибо всем, вы были чрезвычайно полезны.

1 голос
/ 14 октября 2010

Вам необходимо связаться с библиотекой Boost.Serialization. Посмотрите начало Boost page .

...