因為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...