Я пытаюсь кросскомпилировать пакет SDK Azure IoT C (https://github.com/azure/azure-iot-sdk-c) для BeagleBoard Black.
Я настроил машину Debian GNU/Linux 8.7 (jessie) и установил набор инструментов, как описано здесь: http://exploringbeaglebone.com/chapter7/.
Затем я выполнил следующие шаги: https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/SDK_cross_compile_example.md и создал файл Toolchain:
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Linux) # this one is important
SET(CMAKE_SYSTEM_VERSION 1) # this one not so much
# this is the location of the amd64 toolchain targeting the Raspberry Pi
SET(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_FIND_ROOT_PATH /usr/lib/arm-linux-gnueabihf)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
я вызываю Buildscript azure-sdk, используя:
./build.sh --toolchain-file toolchain-bb.cmake -cl --sysroot=/usr/lib/arm-linux-gnueabihf
Возникает следующая ошибка
CMake Error at /usr/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.0/Modules/FindOpenSSL.cmake:328 (find_package_handle_standard_args)
c-utility/CMakeLists.txt:141 (find_package)
я попытался установить openssl, используя:
sudo apt-get install openssl:armhf
но ошибка остается, если я соберу исходный код для arm64 (используя только файл build.sh из azure-iot-sdk), все будет работать нормально.
если я клонирую openssl и создаю его для целевой руки, я получаю следующую ошибку:
CMake Error at /usr/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES) (found
version "1.1.1")
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
(см. документацию). Иapt-get
работает с пакетами host. - person Tsyvarev   schedule 24.04.2017/usr/lib/arm-linux-gnueabihf
). С данной цепочкой инструментов вы не можете попросить CMake искать библиотеки за пределами этого каталога. Я просто заметил, что когда вы собираете openssl для целевой руки, CMake нашел свои заголовки, но библиотеки все еще отсутствуют. Каково расположение заголовков? (проверьте значение OPENSSL_INCLUDE_DIR в кеше CMake,CMakeCache.txt
). Где (в каком каталоге) установлены библиотеки openssl? - person Tsyvarev   schedule 25.04.2017