Перед использованием Boost::regex
вам необходимо собрать Boost, потому что это не только библиотека заголовков (как и большинство других библиотек Boost). Обычно это делается во время установки через менеджер пакетов, такой как homebrew или macports.
Библиотеки только с заголовками не нужно добавлять в раздел COMPONENTS
вашего find_package
вызова.
Затем вы делаете
find_package(BOOST 1.72.0 COMPONENTS regex REQUIRED)
, как вы уже сделали, и позже добавляете библиотеки к своей цели либо
target_link_libraries(${PROJECT} PUBLIC Boost::regex)
Если вы собираетесь использовать другие библиотеки Boost позже (только заголовок или нет) Вы должны либо явно указать их имя в вызове target_link_libraries, либо добавить
target_link_libraries(${PROJECT} PUBLIC ${Boost_LIBRARIES})
Это также добавит каталог Boost в ваши каталоги включения. Затем вы можете опустить следующие строки
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})
Если вы предпочитаете использовать библиотеки stati c вместо динамических c, используйте
set(Boost_USE_STATIC_LIBS ON)
перед вашим find_package
звонок.