如何解决cmake 交叉编译链接 boost
我有一个 (YOCTO) SKD,包括我的 ARM Target 32 位增强。在 Ubuntu 18.04 中托管。
我如何链接 Boost?
解决方法
正如@Tsyvarev指出的那样:
首先准备工具链,然后用链接的 Boost 制作项目。
cmake_minimum_required(VERSION 3.19)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR armv7-a)
# sysroot
set(CMAKE_SYSROOT /opt/karo-base/1.0/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi)
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
# compiler
set(TOOLCHAIN_PREFIX /opt/karo-base/1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++)
set(COMPILER_FLAGS " -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -mbe32")
set(CMAKE_C_FLAGS "${COMPILER_FLAGS}" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "${COMPILER_FLAGS}" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD 17)
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)
project(helloBoost )
# see https://cmake.org/cmake/help/v3.5/module/FindBoost.html
find_package(Boost REQUIRED COMPONENTS ALL)
add_executable(helloBoost main.cpp)
target_link_libraries(helloBoost Boost::boost Boost::log)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。