2013-11-27 56 views
0

我想使用一些爲linux設計的函數調用(命令)。我可以通過在adb(Android CML)中輸入關鍵詞來使用它們。 在這裏我發現了一些人做的一些作品。如何從src編譯爲Android for Android

wget(因爲它沒有包括在大多數Android設備)

Iperf

但是看完他們的方法或建議後,我只能理解我需要使用Android NDK和寫入正確的makefile 。我不知道如何爲linux構建其他的源代碼(大多數是C/C++)(只需要使用README文件中提到的'make'命令)。官方的NDK文檔主要針對Java環境調用C lib。

這裏有一些HOWTO,課程或建議。謝謝!

我編譯過單個cpp文件程序。我嘗試編譯替代版本iperf https://github.com/tierney/iperf

它似乎是相對於lib,一些頭文件和多個c文件。我無法正常輸入所有c文件進行編譯。有什麼我錯過了嗎?

回答

0


是的,你需要NDK,它提供了Android的C/C++編譯器。
一般步驟都是一樣的:

  • 設立NDK(我寫了一個小how-to,但它是拱Linux和魚貝,Windows how-to
  • 調整您的make文件(而不是gcc編譯採用Android NDK編譯器等)
  • 記住,Android使用Bionic C library,通過它支持所以只能使用功能
  • 運行make,該程序推送到您的設備,並使其可執行

當然,這只是概述它是如何完成的。如果遇到麻煩,您應該嘗試一下,然後提出具體問題。

+0

添加特定情況。請給我一些建議。 – user2174595

+0

對於你的iperf,你必須用一些參數運行configure腳本。例如./configure --build = android-arm-eabi --sysroot = $ NDK/platforms/android-18/arch-arm /等等。比嘗試編譯,如果它不工作檢查錯誤make給你。 – EarlOfEgo

0

此外,對於小型可執行文件和僅用於測試,您也可以交叉編譯並靜態鏈接到libc。這樣您就不必擔心仿生,這可能會浪費時間。

+1

添加特定的案例。請給我一些建議。 – user2174595

+0

你可以做一些像[那](http://stackoverflow.com/questions/9324772/cross-compiling-static-c-hello-world-for-android-using-arm-linux-gnueabi-gcc) – jml