Когда кросс-компиляция, файл toolchain обычно устанавливает переменную CMAKE_FIND_ROOT_PATH . В сочетании с переменной CMAKE_FIND_ROOT_PATH_MODE_LIBRARY , установленной в ONLY
, переменная CMAKE_FIND_ROOT_PATH
используется как эффективная chroot для вызова find_library
, поэтому обыскиваются только библиотеки с заданным префиксом (именами) .
Существуют аналоговые переменные для настройки поведения для find_path
(используемые для поиска включают пути) и find_program
.
Файл инструментальной привязки, который вы используете, фактически устанавливает CMAKE_FIND_ROOT_PATH
в строка 1521 :
set( CMAKE_FIND_ROOT_PATH "${ANDROID_TOOLCHAIN_ROOT}/bin"
"${ANDROID_TOOLCHAIN_ROOT}/${ANDROID_TOOLCHAIN_MACHINE_NAME}"
"${ANDROID_SYSROOT}"
"${CMAKE_INSTALL_PREFIX}"
"${CMAKE_INSTALL_PREFIX}/share" )
и ниже устанавливает CMAKE_FIND_ROOT_PATH_MODE_*
переменные в ONLY
. Таким образом, вам нужно установить Boost в один из этих каталогов и дать подсказки (например, BOOST_ROOT) относительно него.
Обратите внимание, что Boost должен быть создан для целевой платформы (Android NDK в вашем случае), а не для платформы, где вы перекрестно компилируете (Linux).
boost
include и (при необходимости) всех библиотек в одну из папок NDK. – frans 5 March 2016 в 13:12ln -s
. – Alex Cohn 27 March 2018 в 15:56