LINUX.ORG.RU

Сообщения Drus

 

Кросскомпиляция проекта на С++ с зависимостими под OpenWRT

Приветствую! Есть проект 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 

В таком случае все прекрасно собирается и работает, а вот с кросскомпиляцией беда (((

 , ,

Drus
()

RSS подписка на новые темы