使用Docker交叉编译

前提

需要将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'
Share

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注