2013-03-25 70 views
0

我已經下載了捲曲庫的源代碼和我提取它在Android源的外部文件夾中的我所產生的curl_config.h用下面的配置命令包括捲曲到機器人AOSP

./configure --host=arm-linux --disable-tftp --disable-sspi --disable-ipv6 --disable-ldaps --disable-ldap --disable-telnet --disable-pop3 --disable-ftp --without-ssl --disable-imap --disable-smtp --disable-pop3 --disable-rtsp --disable-ares --without-ca-bundle --disable-warnings --disable-manual --without-nss --enable-shared --without-zlib --without-random --without-libidn 

但當我做一個毫米來建立捲曲模塊,我得到以下錯誤:

external/curl/lib/connect.c:579: error: invalid 'asm': invalid operand for code 'w' 

有沒有人知道如何解決這個錯誤?

在此先感謝!

回答

2

您可能會因爲某些不良內容而收到此錯誤。其中最常見的原因是因爲您正在編譯cURL而您的主機包含

檢查您的的Makefile不包含硬編碼引用/usr/include目錄或任何其他包括路徑。這顯然是人們試圖在ARM for x86上交叉編譯時的常見錯誤。您的編譯器很困惑,因爲他試圖將彙編網絡指令(如rorw(「正確旋轉字」)x86指令)解析爲ror(「旋轉右」)ARM指令。

某些C的功能,如htons,它提供網絡字節順序轉換(確保沒有例如字節序問題),被實現爲包含內聯組件預處理宏。而ARM編譯器不能理解x86指令,這就是爲什麼你得到這個錯誤。這些網絡翻譯功能在cURL中大量使用,所以這可能是您的問題。

這是一個good article,它應該可以幫助您在Android上移植cURL。這傢伙不會用Android編譯cURL,但會通過JNI導出cURL的函數。

+0

也很好的信息在這裏http://stackoverflow.com/questions/4952169/using-curl-in-android – Mixaz 2015-05-11 20:10:01