静态编译parted3.2
来源:互联网 发布:win10精简优化版 编辑:程序博客网 时间:2024/04/29 13:13
因为fdisk不支持gpt,想要在安卓上重新分区就需要用parted,于是必须静态编译parted。这里用了当前最新的parted3.2。
交叉编译器:linaro gcc-linaro-arm-linux-gnueabihf-4.9-2014.07
编译环境:Ubuntu16.04 64位
- 获取libuuid
parted依赖libuuid,首先获取libuuid。
文档说从e2fsprogs 获取,但我参考别人的从util-linux-ng-2.18获取。
下载编译。
./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc --prefix=`pwd`/install --disable-shared --without-ncurses --disable-fsck
这里只用编译uuid就行了,别给自己找麻烦
cd shlibs/uuidmake make install
即可得到libuuid.a
2.编译parted
.configure --prefix=`pwd`/install --host=arm-linux --disable-device-mapper --without-readline --disable-shared CFLAGS="-I/temp/util-linux-ng-2.18/build/install/include" LDFLAGS="-L/temp/util-linux-ng-2.18/build/install/lib" CC=arm-linux-gnueabihf-gcc
–prefix=pwd
/install表示安装在当前的install目录里
注意CFLAGS,LDFLAGS换成你的libuuid安装路径
再make 之前还要打一个补丁,否则编译失败
https://lists.gnu.org/archive/html/bug-parted/2014-07/txt5T0SI19_QH.txt
在libparted/arch目录下,给linux.c打上补丁
cd libparted/archpatch -p0<txt5T0SI19_QH.txtfile:linux.ccd ../..
make make install
这时得到的仍然不是静态编译的文件,最后需要手动编译
cd parted
可以看到有o a文件,还需要另外的两个libuuid.a libparted.a
cp /temp/util-linux-ng-2.18/build/install/lib/libuuid.a .cp ./install/lib/libparted.a .
准备好这些文件就可静态编译了
arm-linux-gnueabihf-gcc -static -o parted *.a *.o
编译完成,没有报错,file看一下可以看得是静态链接的
最后strip,减少尺寸
arm-linux-gnueabihf-strip parted
编译好的:http://pan.baidu.com/s/1mi2qyk4
参考:静态编译libparted.a, parted的艰难历程失去的时空(不知道哪里转的,不贴地址了)
0 0
- 静态编译parted3.2
- 静态编译
- MSVC 2012动态编译及静态编译 QT 5.0.2
- MSVC 2012动态编译及静态编译 QT 5.0.2
- FFMPEG Android(2) 编译编译静态ffmpeg可执行文件
- 静态编译和动态编译
- 静态编译与动态编译
- 静态编译和动态编译
- 动态编译和静态编译
- 动态编译和静态编译
- 静态编译与动态编译
- 静态编译与动态编译
- vs2010静态编译编译qt4
- 动态编译与静态编译
- 动态编译和静态编译
- 静态编译与动态编译
- 关于静态编译
- 静态、动态编译
- 最大流的增广路算法(EK)
- codeforces round 309 div1 Nudist Beach 二分+搜索
- 建立一个单向链表
- POJ
- WIN 10 安装 ubuntu 双系统
- 静态编译parted3.2
- Ubuntu16.04.2_64_LTS配置LAMP
- centos 安装redis和php redis扩展
- JavaScript中的块级作用域和私有变量
- POJ 1979-Curling 2.0(DFS)
- 微信开通检测软件
- 5-7 树的遍历
- 全排列java代码实现
- windows命令行netstat 统计连接数