wimlib静态链接 - mehome/openthos GitHub Wiki
wimlib静态链接生成可执行程序相关文档
生成环境:ubuntu15.04(64位) 源码:wimlib-1.8.2 (http://wimlib.net/downloads/wimlib-1.8.2.tar.gz) 需要下载:libiconv-1.14源码
64位可执行文件生成
1.生成64位可使用的libiconv静态库
进入下载好的libiconv-1.14文件夹
./configure --enable-static --prefix=$(pwd)/_INSTALL CFLAGS=-static
make -j8
可能会出现链接错误,不用管它,直接查看preload/.libs文件夹里是否生成libiconv.a,若生成继续
2.生产64位的可执行文件wimlib-imagex(静态链接)
进入下载好的wimlib-1.8.2文件夹
sudo apt-get install ntfs-3g-dev
sudo apt-get install libfuse-dev
./configure --prefix=$(pwd)/_INSTALL --enable-static --with-libiconv-prefix=/home/chyz/Downloads/libiconv-1.14/preload/.libs CFLAGS=-static
修改Makefile,将LDFLAGS=-Wl,然后进行编译
make -j8
之后会出现错误,这是正常现象
创建一个test.sh,内容如下:
#! /bin/bash
g++ -static -std=gnu99 -fvisibility=hidden -v -fno-common -Wmissing-prototypes -Wstrict-prototypes -Wundef -Wno-pointer-sign -Wno-deprecated-declarations -o wimlib-imagex programs/wimlib_imagex-imagex.o ./.libs/libwim.a /home/chyz/Downloads/libiconv-1.14/preload/.libs/libiconv.a -Wl,--start-group -ldl -lxml2 -lpthread -lntfs-3g -lfuse -lm -lattr -lz -lrt -licule -licutu -licui18n -licuuc -licuio -liculx -licudata -Wl,--end-group
运行bash test.sh 可以获得静态链接生成的可执行文件wimlib-imagex
32位可执行文件生成
1.生成32位可使用的libiconv静态库
进入下载好的libiconv-1.14文件夹
./configure --enable-static --prefix=$(pwd)/_INSTALL CFLAGS="-static -m32"
make -j8
可能会出现链接错误,不用管它,直接查看preload/.libs文件夹里是否生成libiconv.a,若生成继续,使用objdump 查看是否是32位的静态库
2.生产32位的可执行文件wimlib-imagex(静态链接)
./configure --prefix=$(pwd)/_INSTALL --enable-static --with-libiconv-prefix=/home/chyz/Downloads/libiconv-1.14/preload/.libs CFLAGS="-static -m32"
sudo apt-get install ntfs-3g-dev:i386
sudo apt-get install libfuse-dev:i386
修改Makefile,将LDFLAGS=-Wl,然后进行编译
make -j8
之后会出现错误,这是正常现象
创建一个test.sh,内容如下:
#! /bin/bash
g++ -static -m32 -std=gnu99 -fvisibility=hidden -v -fno-common -Wmissing-prototypes -Wstrict-prototypes -Wundef -Wno-pointer-sign -Wno-deprecated-declarations -o wimlib-imagex programs/wimlib_imagex-imagex.o ./.libs/libwim.a /home/chyz/Downloads/libiconv-1.14/preload/.libs/libiconv.a -Wl,--start-group -ldl -lxml2 -lpthread -lntfs-3g -lfuse -lm -lattr -lz -lrt -licule -licutu -licui18n -licuuc -licuio -liculx -licudata -Wl,--end-group
运行bash test.sh 可以获得静态链接生成的可执行文件wimlib-imagex(32位)