Использование boost.asio в cMake

Я относительно новичок в cMake, и я пытаюсь использовать библиотеку boost asio в своем проекте.

Мне удалось заставить cMake найти другие библиотеки буста, такие как smart_ptr и lexical_cast, но я получаю ошибку компоновщика при попытке включитьboost/asio.hpp:

LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-1_40.lib'.  

Затем я попытался изменить свой CMakeLists.txt из

find_package(Boost 1.40.0 REQUIRED)

в

find_package(Boost 1.40.0 REQUIRED COMPONENTS asio)

cMake тогда проситBoost_ASIO_LIBRARY_DEBUG а такжеBoost_ASIO_LIBRARY_RELEASE, Правильно ли я иду по этому пути, и если да, то куда мне направить cMake, чтобы найти эти библиотеки. (Я использую cMake 2.6 и boost 1.40.0)

Ответы на вопрос(1)

Решение Вопроса

документация:

Следующие библиотеки должны быть доступны для связи программ, использующих Boost.Asio:

Boost.System для классов boost :: system :: error_code и boost :: system :: system_error.Boost.Regex (необязательно), если вы используете какую-либо из перегрузок read_until () или async_read_until (), которые принимают параметр boost :: regex.OpenSSL (необязательно), если вы используете поддержку SSL Boost.Asio.

Если вы посмотрите на ошибку вашей ссылки, вы увидите, что она ищет библиотеку Boost.System. Я хотел бы попробовать изменить ваш CMakLists.txt, чтобы прочитать:

find_package(Boost 1.40.0 REQUIRED system)
 David Doria18 дек. 2013 г., 14:29
И, конечно, вы также должны добавить target_link_libraries (YourExecutable $ {Boost_LIBRARIES})

Ваш ответ на вопрос