Linux make не может связываться с библиотеками Boost без заголовков

Я успешно перешла на Linux, и мне это очень нравится. За исключением того, что я не могу связать код с библиотеками Boost, которые не являются только заголовками.

Шаги, которые я предпринял:

  1. Запустите sudo apt-get install libboost.*-dev в терминале, чтобы установить библиотеки Boost.
  2. Позвольте CMake сгенерировать мои make-файлы и найти библиотеки Boost, как я делал это в Windows.
  3. Запустите make для компиляции.

Тот же код компилируется и прекрасно связывается под Windows с Microsoft Visual C ++.

Дальнейшая информация

Что мне еще нужно делать?


person Mythli    schedule 08.08.2011    source источник
comment
Обе ссылки не работают (404). Можете ли вы как-нибудь это исправить?   -  person Peter Mortensen    schedule 03.09.2018


Ответы (1)


Судя по вашему выводу и вашим CMakeFiles, не похоже, что вы связываете свой код с библиотекой файловой системы Boost.

То есть,

target_link_libraries(RCMeta ${Boost_FILESYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY})

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

Вы также можете использовать универсальную переменную ${Boost_LIBRARIES},

target_link_libraries(RCMeta ${Boost_LIBRARIES})

для вашей библиотеки RCMeta.

person GWW    schedule 08.08.2011
comment
Правильно ли я понимаю, что мне нужно связать RCMeta (статическую библиотеку) с ускорением, а не с исполняемым файлом? - person Mythli; 08.08.2011
comment
@Mythli: Я не думаю, что иначе можно скомпилировать / скомпилировать библиотеку. - person GWW; 08.08.2011
comment
Сработало почти так, как вы сказали. & Узнал что-то новое. Большое спасибо! - person Mythli; 08.08.2011
comment
Что вы имеете в виду под CMakeFiles? Вы имеете в виду файлы CMake? Или CMakeLists.txt? Или что-то другое? - person Peter Mortensen; 03.09.2018