boost :: Thread без библиотечных окон - PullRequest
0 голосов
/ 14 марта 2012

Я бы хотел избежать создания целой библиотеки всего за boost::Thread.Поэтому я добавил файлы cpp в libs / Thread в свой проект, и он работал в GCC на MacOS.

Однако Visual Studio в Windows сообщает мне

LINK: фатальная ошибка LNK1104:не могу открыть файл 'libboost_thread-vc100-mt-s-1_47.lib'

Мне кажется, это неправильно, так как AFAIK я не добавил библиотеку в свой проект.Почему он хочет, чтобы я добавил это, и как Boost делает это без изменения настроек моего проекта?

Или я все-таки ошибаюсь ...

Любая идея?

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Добавление BOOST_ALL_NO_LIB к определениям вашего препроцессора не даст пакетам буста автоматически связываться в Windows.

1 голос
/ 14 марта 2012

Boost использует #pragma comment(lib, library_name), чтобы указать компилятору связываться с конкретными библиотеками.Если вы не хотите использовать код в библиотеке с таким именем, вам, вероятно, нужно найти #pragma и удалить (или изменить) его.В качестве альтернативы вы можете использовать опцию nodefaultlib с компоновщиком.

Другой способ - использовать bcp для извлечения нужных вам частей Boost, а затем создавать и использовать библиотеки, которые он создает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...