編譯Android VNC Server


1,在如下地址checkout源代碼,我checkout的版本為0.9.7
http://code.google.com/p/android-vnc-server/source/checkout

2,在源代碼目錄下,新建jni目錄,將checkout的源代碼都剪切至該目錄

3,在jni目錄,新建Application.mk文件,添加APP_ABI := aremabi armeabi-v7a,保存文件退出

4,修改LibVNCServer-0.9.7/libvncserver/main.c文件中的第245行,將sprintf(stderr,buf); 修改為sprintf(stderr,"%s",buf); 不然編譯的時候會出錯。

5,使用vi打開Android.mk,發現它需要使用第三方的庫文件libz.so和libjpeg.a,libz.so在ndk中已經支持,我們需要先編譯libjpeg,才能繼續往下執行

6,去這里查看如何編譯arm版的libjpeg(http://blog.csdn.net/gengshenghong/article/details/7016617

7,在jni目錄項新建一個include文件夾,將libjpeg的頭文件拷貝至該目錄(jconfig.h, jerror.h, jmorecfg.h, jpeglib.h)

8,將編譯的libjpeg.a靜態庫拷貝至jni目錄

9,修改Android.mk文件的LOCAL_C_INCLUDE := $(LOCAL_PATH) $(LOCAL_PATH)/LibVNCServer-0.9.7/libvncserver $(LOCAL_PATH)/LibVNCServer-0.9.7 include 
注釋掉 LOCAL_SHARED_LIBRARIES := libz 和 LOCAL_STATIC_LIBRARIES := libjpeg
添加LOCAL_LDLIBS := libjpeg.a -lz
保存修改。

10,使用vi打開include/jmorecfg.h文件,修改第263行代碼,將其中的typedef enum { FALSE = 0, TRUE = 1 } boolean; 修改為:
typedef enum { false = 0, true = 1 } boolean; 不修改的話,會提示error: expected identifier before numeric constant錯誤。

11,至此,使用ndk-build就能編譯androidvncserver了。

 

參考文章:http://xuxd32.blog.163.com/blog/static/48121933201172411850206/
http://stackoverflow.com/questions/15172387/error-while-installing-tiff-3-8-2
http://blog.csdn.net/gengshenghong/article/details/7016617
http://bbs.gfan.com/android-116468-1-1.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM