Я обнаружил странное поведение android_cmake и boost. я начинаю CMake с использованиемandroid_cmake находит boost include wrong
cmake ../ -DCMAKE_TOOLCHAIN_FILE=/opt/android/android-cmake/android.toolchain.cmake -DBOOST_ROOT=/opt/android/android-cmake/common-libs/boost -DBOOST_INCLUDEDIR=/opt/android/android-cmake/common-libs/boost/boost-trunk/boost -DBOOST_LIBRARYDIR=/opt/android/android-cmake/common-libs/boost/libs/armeabi-v7a -DBoost_DEBUG=1
, как вы можете увидеть все 3 подталкивании переменных BOOST_ROOT, BOOST_INCLUDEDIR и BOOST_LIBRARYDIR устанавливаются. ускорение найдено функцией «find_host_package». Ниже приводится часть вывода:
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:646 ] BOOST_ROOT = /opt/android/android-cmake/common-libs/boost
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:648 ] BOOST_INCLUDEDIR = /opt/android/android-cmake/common-libs/boost/boost-trunk/boost
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:650 ] BOOST_LIBRARYDIR = /opt/android/android-cmake/common-libs/boost/libs/armeabi-v7a
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:705 ] Include debugging info:
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:707 ] _boost_INCLUDE_SEARCH_DIRS = /opt/android/android-cmake/common-libs/boost/boost-trunk/boost;/opt/android/android-cmake/common-libs/boost/include;/opt/android/android-cmake/common-libs/boost;C:/boost/include;C:/boost;/boost/include;/boost;/sw/local/include
-- [ /opt/sw/cmake-2.8.10.2/share/cmake-2.8/Modules/FindBoost.cmake:734 ] location of version.hpp: /usr/local/include/boost/version.hpp
, как вы можете видеть, подталкивание принять version.hpp не из множества расположения, а из
/usr/local/include/boost/version.hpp
даже если мое указанное место делает содержит версию. hpp:
/opt/android/android-cmake/common-libs/boost/boost-trunk/boost/version.hpp
сейчас я не могу быть уверенным, что происходит и где cmake берет импульс .. любые предложения?
он заставил CMake для следующего сообщения: Не удалось найти подталкивание, не может найти файлы заголовки подталкивания, пожалуйста, установите BOOST_ROOT и включает в себя и т.д. Несмотря на то, что они специально установить и присутствовать в отладочном выходе ... Смешно. – etwas77
Может случиться так, что он найдет версию, которую она не ожидает. Версии, которые он ожидает, вероятно, будут находиться в файле android.toolchain.cmake. Попробуйте изменить файл cmake и установите 'Boost_ADDITIONAL_VERSIONS', чтобы включить версию, имеющуюся в вашей системе. – mockinterface
i добавил -DBoost_ADDITIONAL_VERSIONS = 1.55 (вместе с NO_SYSTEM_PATHS = ON), все тот же эффект: не удалось найти повышение. в любом случае версия 1.55 найдена даже без упомянутого ключа и указана в _boost_TEST_VERSIONS. и если я удалю NO_SYSTEM (но добавлю ДОПОЛНИТЕЛЬНО), то форсирует значение default/usr/local/include/boost/по умолчанию. – etwas77