2014-03-25 210 views
3

我一直在做很多嘗試,以獲得編譯爲Android的libpcap,並且我沒有看到任何值得記錄的模式或任何進度。我有一個非常簡單的嗅探器(在MIPS linux中工作正常),使用libpcap,所以我想我自己哦,好吧...沒有biggie ...我只是編譯Android的libpcap(在最後,Android只是一個Linux)...這裏是問題出現的地方。我不知道如何使用ndk-buildAndroid.mk以及所有這些基礎結構來編譯libpcap。使用Android NDK編譯libpcap

我有Android NDK的目錄。 NDK具有內置的工具鏈(我在~/Documents/Projects/Android_NDK/toolchains/下有很多目錄),但沒有一個工具鏈可用libpcap

我已經試過兩種不同版本的libpcap或...分支:

Android的一個,這是一個我想使用, https://android.googlesource.com/platform/external/libpcap/

和常規one: http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz

我所做的所有嘗試都很不成功。我已經看到了類似的問題Android NDK: Link using a pre-compiled static library,但我仍然收到各種錯誤。

我已經將這些pcap庫下載到他們自己的目錄。也許是這個問題?我是否需要將Android libpcap放入NDK根目錄下的某個目錄並重新創建工具鏈?

我在MacOSX 10.9.2 64bit上使用NDK-r9。

回答

2

終於!!

在被非現有頭文件和類似東西困擾之後,我發現了this question,它指向一個帶有編譯的libpcap的SVN回購(http://sourceforge.net/p/prueba-android/code/HEAD/tree/trunk/jni/)!

如果其他人想了解我的Android.mk和目錄結構如何看起來更多的細節,請添加評論,我將擴展此答案。

+0

這是相當舊的版本,不是嗎? –

+2

Yeep ...但如果它編譯,它會發貨! **: - D ** – BorrajaX

+0

您是否瞭解Android.mk和目錄結構的外觀? –

1

請閱讀http://blog.umitproject.org/2011/05/libpcap-for-android.html的優秀文章。有一些說明可以幫助您鏈接到libpcap,但最重要的是,您不能在非根的Android上使用libpcap。所以也許這不值得你的努力。

在植根設備上,您可以簡單地安裝免費嗅探器,如Shark for Root

+0

感謝您的鏈接。我已經嘗試過**; - )** 我不斷收到錯誤: Android_NDKs/external/libpcap/pcap-linux.c:218:30:致命錯誤:linux/net_tstamp.h:沒有這樣的文件或目錄 此外,感謝有關根植設備的提示。實際上,我忘了在問題中指出這一點。我有一個與蘇安裝並給我的應用程序的根訪問**: - )** – BorrajaX

2

如果其他人是否有使用NDK編譯libpcap的Android的問題,還有1.5.2版本在這裏與它內置Android.mk文件:https://android.googlesource.com/platform/external/libpcap.git,並編制本使用NDK的說明在這裏:http://ducbh.blogspot.co.uk/2013/12/cross-compile-libpcap-for-android.html。我可以使用當前的NDK(r10b)確認這個工作...儘管您可能需要添加AndroidManifest.xml(空白)和指向您的Android.mk文件的Application.mk。

我不認爲這會很難修改當前libpcap版本的.mk文件(1.6.2)