gpt4 book ai didi

linux - 交叉编译隧道

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:50 26 4
gpt4 key购买 nike

我在为 ARM 设备交叉编译 stunnel 时遇到困难。交叉编译 OpenSSL 是通过这个 CMake 项目完成的:http://www.valvers.com/open-software/projects/openssl-cmake/并在目标设备上成功运行。

我在编译 OpenSSL 时使用的 CMake 工具链文件:

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 目录,就像在 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 )

我的尝试包括,在运行配置后,使用 --sysroot= 重写 makefile CFLAGS 但在哪里放置第二个文件夹?(library-for-arm)

最佳答案

总体思路:

openssl-cmake 项目使用 CMake 构建基础架构。因此,只需指定适合您的工具链即可。我查看了 stunnel 源代码,他们使用传统的 GNU Autotools 来构建基础设施,这意味着您不能直接在该项目上使用 cmake。 (./configure && make && make install)

您必须使用ExternalProject_Add 来使用cmake 编译stunnel。请查看以下链接以获取更多信息。

还有这个:

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 工具链文件对其进行调试。 stunnel的配置脚本存在一些问题。 sysroot 和 with-ssl dir 的计算方式有点不正确。您可能必须修改配置文件才能使交叉编译正常工作。但总体思路已在上面明确说明。

关于linux - 交叉编译隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30209718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com