我有困难交叉编译一个手臂装置的特效。交叉编译OpenSSL是通过CMake项目:http://www.valvers.com/open-software/projects/openssl-cmake/完成的,它成功地在目标设备上运行。
编译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)我的问题是如何以类似的方式交叉编译特技?我在挣扎着传递替身makefile整个sysroot dir就像在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包括,在运行配置之后,用--sysroot=重写makefile CFLAGS,但是将第二个文件夹放在哪里?(库对臂)
发布于 2015-05-13 19:45:55
一般想法:
openssl项目使用CMake构建基础设施。因此,只需指定适合您的工具链即可。我看了特技源代码,他们使用传统的GNU自动工具作为构建基础设施,这意味着您不能直接在该项目上使用cmake。(./configure && make && make )
您必须使用ExternalProject_Add来使用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工具链文件调试了它一个小时。stunnel的配置脚本有一些问题。计算sysroot和with-ssl dir的方式是不正确的。您可能需要处理配置文件,才能使交叉编译正常工作。但是一般的想法在上面有明确的说明。
https://stackoverflow.com/questions/30209718
复制相似问题