前提
需要将wbb-lib.c编译为libwbb.so,直接使用gcc编译成当前平台下的动态链接库的方式为:
gcc wbb-lib.c -fPIC -shared -o libwbb.so
编译成linux arm 32位
docker pull firemiles/arm-linux-gcc:arm6410-linux2.6.38-gnueabi-gcc4.9 docker tag firemiles/arm-linux-gcc:arm6410-linux2.6.38-gnueabi-gcc4.9 arm-linux-gcc docker run --rm -v $PWD:/build arm-linux-gcc arm-linux-gcc wbb-lib.c -o libwbb.so -std=c99 -lm -fPIC -shared
这个方法的限制很明显,arm-linux-gcc已经不再更新,只支持交叉编译到arm32
使用全能的dockcross
dockcross支持使用Docker交叉编译到各个目标操作系统和目标架构,以交叉编译到arm64举例
docker run --rm dockcross/linux-arm64 > ./dockcross-linux-arm64 chmod +x ./dockcross-linux-arm64 ./dockcross-linux-arm64 bash -c '$CC wbb-lib.c -o libwbb.so -lm -fPIC -shared'