2015-05-13 3 views
0

У меня возникли трудности с перекрестной компиляцией stunnel для устройства ARM. Кросс-компиляция OpenSSL была выполнена через этот проект CMake: http://www.valvers.com/open-software/projects/openssl-cmake/ и успешно работает на целевом устройстве.Cross compile stunnel

Набор инструментов файл CMake Я использую при компиляции OpenSSL:

SET(CMAKE_SYSTEM_NAME Linux) 
SET(CMAKE_C_COMPILER /home/elias/toolchains/axotec/3.4.1/bin/arm-linux-gcc) 
SET(CMAKE_CXX_COMPILER /home/elias/toolchains/axotec/3.4.1/bin/arm-linux-g++) 
SET(CMAKE_FIND_ROOT_PATH /home/elias/toolchains/axotec/3.4.1/arm-linux /home/elias/toolchains/axotec/3.4.1/library-for-ramdisk) 
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 

Мой вопрос, как я пересекаю компилировать Stunnel подобным образом? Я изо всех сил с прохождением Stunnel Makefile весь SYSROOT реж так же, как в файле ToolChain Cmake SET(CMAKE_FIND_ROOT_PATH /home/elias/toolchains/axotec/3.4.1/arm-linux /home/elias/toolchains/axotec/3.4.1/library-for-ramdisk)

Мои atempts включают в себя, после запуска Configure, переписав Makefile CFLAGS с --sysroot = но где поставить вторую папку? (библиотека-для-руки)

ответ

0

Общая идея:

The OpenSSL-CMake проект использует CMake строить инфраструктуру. Следовательно, просто указание инструментария работало для вас. Я посмотрел исходный код stunnel, и они используют традиционные GNU Autotools для инфраструктуры построения, что означает, что вы не можете использовать cmake непосредственно в этом проекте. (./configure & & сделать & & сделать установку)

Вы должны использовать ExternalProject_Add для компиляции Stunnel с использованием CMake. Для получения дополнительной информации см. Следующие ссылки.

Кроме этого:

CMakeLists.txt

cmake_minimum_required (VERSION 3.2) 
include(ExternalProject) 

set(CROSS_INFO CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} AR=${CMAKE_AR}) 


ExternalProject_Add(
    stunnel 
    URL http://www.stunnel.org/downloads/stunnel-5.17.tar.gz 
    CONFIGURE_COMMAND <SOURCE_DIR>/configure --host=powerpc --with-sysroot=${CMAKE_FIND_ROOT_PATH} ${CROSS_INFO} 
) 

Дополнительная информация: Я попытался запустить над проектом локально на моей системе, и я в конечном итоге расходы часа отладки его с файлом PowerPC ToolChain у меня есть. Существует некоторая проблема с скриптом configure stunnel. Способ вычисления sysroot и ssl dir является некорректным. Возможно, вам придется столкнуться с файлом конфигурации, чтобы заставить кросс-компиляцию работать. Но общая идея указана выше.

+0

Большое спасибо за ваш ответ, я обязательно рассмотрю его –