windows + visual studio
提前下载安装visual studio
下载安装openssl
https://slproweb.com/products/Win32OpenSSL.html
假设安装目录为: C:\openssl\OpenSSL3-Win64
编译安装zlib
git clone https://github.com/madler/zlib.git
cd zlib
git checkout v1.3.2
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:/Library -DBUILD_SHARED_LIBS=ON -S .
cmake --build build --config=Release -t install
下载boost1.86.0
git clone https://github.com/boostorg/boost.git --recursive
cd boost
git checkout boost-1.86.0
git submodule update --recursive
配置、编译
.\bootstrap.bat --without-libraries=python,graph,graph_parallel,mpi,predef
.\b2.exe variant=release link=static --prefix="C:/Library" -s OPENSSL_ROOT="C:/openssl/OpenSSL3-Win64" -s ZLIB_INCLUDE="C:/Library/include" -s ZLIB_LIBPATH="C:/Library/lib" --without-python --without-graph --without-graph_parallel --without-mpi --without-predef install
zynq cortex-a9 交叉编译
准备交叉编译工具链
# toolchain-zynq7000.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(TOOLCHAIN_DIR /opt/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf)
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-g++)
# find_library/find_package/find_path
set(CMAKE_FIND_ROOT_PATH /corsair-dev/zynq)
# find_program
set(CMAKE_PROGRAM_PATH /corsair-dev/host)
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)
# linker flags
set(CMAKE_EXE_LINKER_FLAGS "-L/corsair-dev/zynq/lib -Wl,-rpath,/usr/local/lib" CACHE STRING "Exe linker flags")
set(CMAKE_SHARED_LINKER_FLAGS "-L/corsair-dev/zynq/lib -Wl,-rpath,/usr/local/lib" CACHE STRING "Shared linker flags")
set(CMAKE_MODULE_LINKER_FLAGS "-L/corsair-dev/zynq/lib -Wl,-rpath,/usr/local/lib" CACHE STRING "Module linker flags")
# compiler flags
set(CMAKE_C_FLAGS "-march=armv7-a -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard" CACHE STRING "C flags")
set(CMAKE_CXX_FLAGS "-march=armv7-a -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard" CACHE STRING "C++ flags")
add_definitions(-D__STDC_CONSTANT_MACROS)
交叉编译zlib
tar -xf zlib-1.3.2.tar.gz
cd zlib-1.3.2
cmake -B build -G "Ninja" \
-DCMAKE_TOOLCHAIN_FILE=$(pwd)/../toolchain_zynq7000.cmake \
-DCMAKE_INSTALL_PREFIX=/corsair-dev/zynq \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON -S .
cmake --build build -t install
交叉编译openssl
tar -xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./Configure linux-generic32 no-asm no-async \
--prefix=/corsair-dev/zynq --release \
--cross-compile-prefix=arm-linux-gnueabihf- shared
make
make install
交叉编译boost
tar -xf boost_1_84_0.tar.bz2
cd boost_1_84_0
# 配置
./bootstrap.sh --without-libraries=python,graph,graph_parallel,mpi \
--prefix=/corsair-dev/zynq
# 编辑 project-config.jam 文件
# 工具链设置为对应的编译器
using gcc : arm : /opt/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ ;
# 编译安装
./b2 toolset=gcc-arm variant=release link=static \
target-os=linux architecture=arm address-model=32 \
abi=aapcs --without-python --without-graph \
--without-graph_parallel --without-mpi \
-s ZLIB_INCLUDE="/corsair-dev/zynq/include" \
-s ZLIB_LIBPATH="/corsair-dev/zynq/lib" install
824



被折叠的 条评论
为什么被折叠?



