Приветствую! Есть проект https://github.com/c-jimenez/open-ocpp с зависимостями, пытаюсь его кросскомпильнуть под Openwrt с помощью соответствующего SDK (OpenWRT 19.07.0 ramips/mt7620).
Так вот прописал все как положено
export STAGING_DIR=/home/d1/IRZ/openwrt-sdk/staging_dir
export PATH=/home/d1/IRZ/openwrt-sdk/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/bin:$PATH
Создал файл Toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER mipsel-openwrt-linux-gcc)
set(CMAKE_CXX_COMPILER mipsel-openwrt-linux-g++)
set(CMAKE_SYSROOT /home/d1/IRZ/openwrt-sdk)
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(OPENSSL_INCLUDE_DIR /home/d1/IRZ/openwrt-sdk/staging_dir/host/include/openssl)
set(OPENSSL_ROOT_DIR /home/d1/IRZ/openwrt-sdk/staging_dir/host/include/openssl)
set(OPENSSL_CRYPTO_LIBRARY /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libcrypto.a)
set(OPENSSL_CRYPTO_LIBRARIES /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libcrypto.a)
set(OPENSSL_SSL_LIBRARY /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libssl.a)
set(OPENSSL_SSL_LIBRARIES /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libssl.a)
set(DOPENSSL_SSL_LIBRARY /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libssl.a)
set(DOPENSSL_SSL_LIBRARIES /home/d1/IRZ/openwrt-sdk/staging_dir/host/lib/libssl.a)
set(DOPENWRT_ROOT /home/d1/IRZ/openwrt-sdk)
начинаю компилить
cd project_dir
mkdir build
cd build
cmake ../ -DCMAKE_TOOLCHAIN_FILE=/home/d1/IRZ/Crosscompile/OCPPClient/Toolchain.cmake
На выходе получаю ошибку
Searching for OpenSSL executable and dlls
OpenSSL executable: /usr/bin/openssl
GENCERTS = 0
DIR /home/d1/IRZ/Crosscompile/OCPPClient/build/3rdparty/libwebsockets CMP /home/d1/IRZ/Crosscompile/OCPPClient/3rdparty/libwebsockets/cmake
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR SSL Crypto)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.16/Modules/FindOpenSSL.cmake:447 (find_package_handle_standard_args)
CMakeLists.txt:32 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/d1/IRZ/Crosscompile/OCPPClient/build/CMakeFiles/CMakeOutput.log".
See also "/home/d1/IRZ/Crosscompile/OCPPClient/build/CMakeFiles/CMakeError.log".
Пробовал через создание пакетов, helloworld в форме пакета собрал, но вот проект CMake через создание пакета пока не осилил.
Так вот вопрос, может кто подсказать, направить… что я делаю не так? Может флаги какие-то не поставил. Куда можно подсмотреть?
У данного проекта есть требование чтобы в системы был установлен OpenSSL и sqlite3. Если не кросскомпилировать, а просто собирать, то нужно установить требуемые пакеты и далее выполнить команды
cd project_dir
mkdir build
cd build
cmake ../
make
В таком случае все прекрасно собирается и работает, а вот с кросскомпиляцией беда (((