2012-01-10 96 views
0

我試圖編譯fbgrab fbgrab website爲ARM設備。如何使用android交叉編譯工具鏈編譯靜態鏈接的應用程序?

我設法使用此命令

arm-linux-androideabi-gcc --sysroot=$NDK_ROOT/platforms/android-8/arch-arm/ -lz -lm -I../zlib -I../lpng -W -Wall -o fbgrab fbgrab.c ../zlib/libz.a ../lpng/libpng.a 

建造它,但它是動態地相連,我現在該怎麼在設備上安裝的共享庫不

localhost:fbgrab-1.0 anatoly$ file fbgrab 
fbgrab: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped 

所以我需要靜態建立它鏈接庫 當我嘗試使用-static選項編譯失敗,此消息ld: cannot find -lz雖然共享庫位於尖目錄

這裏有什麼問題嗎?如何建立靜態鏈接二進制文件?或者我如何能夠將共享庫安裝到設備上?

回答

0

您可以輕鬆地,或者通過包括預建的共享庫安裝共享庫,或者通過包括其來源在您的項目並使用NDK工具構建他們。人們也可以使用NDK來進行靜態鏈接。看看在你的NDK目錄這些文檔:

/android-ndk-r7/docs/PREBUILTS.html
/android-ndk-r7/docs/ANDROID-MK.html

希望有所幫助!

+0

謝謝回答。最後,我設法建立我想要的,但發現沒有辦法,來構建完全靜態庫,導致一些庫動態地僅鏈接(libc中的libm如果我沒有記錯的話) – 2012-02-18 09:36:59