前言
終于終于終于搞會了交叉編譯
了解docker
docker:https://github.com/AlanSean/book/tree/master/10-docker
編寫Dockerfile
FROM multiarch/crossbuild
RUN cd /
RUN git clone https://github.com/AlanSean/docker-crossbuild-cmake-tools
RUN mv docker-crossbuild-cmake-tools/ /tools
創(chuàng)建鏡像
docker build -f Dockerfile -t crossenv . --no-cache
運(yùn)行鏡像
docker run --rm -it -v E:\github\cmake-backUp\mozjpeg-4.0.3:/workdir crossenv
開始編譯 mozjpeg
mkdir build
mkdir build/win
mkdir build/mac
mkdir build/linux
cd build/win
//交叉編譯win程序
//-D 后面跟的是參數(shù)
//-DCMAKE_TOOLCHAIN_FILE 指定編譯工具鏈文件
//-DPNG_SUPPORTED 是mozjpeg的參數(shù) 不設(shè)置0 會報錯
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=/tools/win.cmake -DPNG_SUPPORTED=0
//等待
//-- Configuring done
//-- Generating done
make
// cjpeg.exe 這個是需要動態(tài)鏈接庫的 也就是依賴xxx.lib
// cjpeg-static.exe 不需要 便于遷移
// 其他系統(tǒng)平臺也是同理
cd build/mac
//注意 工具鏈換了哦
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=/tools/osx.cmake -DPNG_SUPPORTED=0
make
cd build/linux
cmake ../.. -DPNG_SUPPORTED=0
make