天天看點

編譯 boostvs 編譯mingw 編譯 (待驗證)linux 編譯arrch64 交叉編譯

編譯 boost

  • vs 編譯
  • mingw 編譯 (待驗證)
  • linux 編譯
  • arrch64 交叉編譯

下載下傳boost 1.67.0: https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.zip

vs 編譯

mingw 編譯 (待驗證)

下載下傳 msys2:

官方下載下傳:https://www.msys2.org/

SourceForge下載下傳:https://sourceforge.net/projects/msys2/

清華大學開源軟體鏡像站

下載下傳頁:https://mirror.tuna.tsinghua.edu.cn/help/msys2/

直接下載下傳:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/msys2-x86_64-20190524.exe

配置 mingw+perl(這裡用的Qt安裝包中)

編譯 boostvs 編譯mingw 編譯 (待驗證)linux 編譯arrch64 交叉編譯

寫build.sh,關聯編譯器和perl編譯環境

#!/bin/bash
# 将自己的MinGW編譯器加入搜尋路徑
export PATH=/D/Qt/QtVersion/Qt5.12.1/Tools/mingw730_64/bin:$PATH ;
#perl環境變量
export PATH=/C/Strawberry/perl/bin:$PATH ;

# 切換到 OpenBLAS 源碼檔案夾 
cd "/E/HuObject/AllQtVersion/OpenBLAS-0.2.20" ; 
# 先執行make clean
echo start make clean,please waiting...;
# 清除之前編譯生成的中間檔案
mingw32-make clean ;

# 出錯就中止編譯
if [ ! $? ];then exit -1;fi; 
# -j 選項用于指定多線程編譯
# 編譯OpenBLAS很耗時,多線程編譯才能提高編譯速度
# 如果你的MinGW編譯器有make.exe,這裡mingw32-make也可以替換為make
mingw32-make -j 8 NOFORTRAN=1 \
        BINARY=64 \
        DEBUG=0  \
        DYNAMIC_ARCH=1 
        USE_THREAD=1 \
        NUM_THREADS=24; 
if [ ! $? ];then exit -1;fi;
# 删除安裝路徑
rm "/E/HuObject/AllQtVersion/OpenBLAS-0.2.20/OpenBLAS_windows_gcc540_x86_64" -fr;
#if [ ! $? ];then exit -1;fi;
# 安裝到指定的位置 /D/release/OpenBLAS_windows_gcc540_x86_64 
mingw32-make install PREFIX="/E/HuObject/AllQtVersion/release" NO_LAPACKE=1
           

輕按兩下 msys2.exe,cd到 build.sh 檔案所在目錄.

運作./build.sh

PREFIX="/E/HuObject/AllQtVersion/release" 這個是編譯後輸出路徑,随便改

linux 編譯

arrch64 交叉編譯

#欺騙編譯器 gcc 為交叉編譯器gcc
$export gcc=/usr/bin/aarch64-linux-gnu-gcc
#修改bootstrap.sh
PREFIX=<編譯完成後的安裝目錄>
#例如:PREFIX=/home/hu/hu/aarch64-imxq-qt5.12.8/boost_1_67_0_bin
$./bootstrap.sh
#會在目前目錄生成project-config.jam檔案
#注意using<空格>gcc<空格>:<空格>:<空格><編譯器路徑>
if ! gcc in [ feature.values <toolset> ]
{
    using gcc : : /usr/bin/aarch64-linux-gnu-gcc ; 
}
$./bjam
#會在./stage檔案夾中生成lib庫
#安裝到修改bootstrap.sh中的指定路徑
$./bjam install 

if ! gcc in [ feature.values < toolset> ]
{
using gcc : : /opt/rk-x11/2.2.4/sysroots/x86_64-rksdk-linux/usr/bin/arm-rk-linux-gnueabi/arm-rk-linux-gnueabi-gcc -march=armv7ve -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a17 –sysroot=/opt/rk-x11/2.2.4/sysroots/cortexa17hf-neon-vfpv4-rk-linux-gnueabi ;
} 
           

./bootstrap.sh