靜態編譯parted3 2

2021-07-28 22:02:32 字數 1840 閱讀 6451

因為fdisk不支援gpt,想要在安卓上重新分割槽就需要用parted,於是必須靜態編譯parted。這裡用了當前最新的parted3.2。

交叉編譯器:linaro gcc-linaro-arm-linux-gnueabihf-4.9-2014.07

編譯環境:ubuntu16.04 64位

./configure --host=arm-linux cc=arm-linux

-gnueabihf

-gcc

--prefix=

`pwd`/install --disable-shared

--without-ncurses

--disable-fsck

這裡只用編譯uuid就行了,別給自己找麻煩

cd shlibs/uuid

make

make install

即可得到libuuid.a

2.編譯parted

.configure --prefix=

`pwd`/install --host=arm-linux

--disable-device

--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 之前還要打乙個補丁,否則編譯失敗

在libparted/arch目錄下,給linux.c打上補丁

cd libparted/arch

patch -p0.txt

file:linux.c

cd ../..

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

編譯好的:

Qt編譯生成靜態庫(靜態編譯)

開發環境 vs2008 qt4.8.4原始碼庫 其他環境請自己嘗試,原理應該是差不多的 qt編譯生成靜態庫1.本教程只針對在win32平台,使用vs開發工具 例子以vs2008為例 2.3.解壓qt源 到目標目錄,如 4.開啟 mkspecs 目錄,找到目標平台的資料夾,如 win32 msvc20...

關於靜態編譯

出現以下錯誤的解決方案 nafxcw.lib afxmem.obj error lnk2005 void cdecl operator new unsigned int 2 yapaxi z already defined in libcmt.lib new.obj nafxcw.lib afxme...

qt靜態編譯

qt靜態編譯出現以下問題怎麼解決呢?d qt 5.9.0 qtbase src corelib global qlibraryinfo.cpp fatal error c1853 qmake pch.pch 預編譯標頭檔案來自編譯器的早期版本,或者預編譯頭為 c 而在 c 中使用它 或相反 nmak...