2012-02-16 16 views
0

我想在Android下編譯一個C程序。如何在Android.mk中定義對壓縮和解壓縮的引用

prebuilt/darwin-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: out/target/product/passion/obj/EXECUTABLES/androidvncserver_intermediates/LibVNCServer-0.9.7/libvncserver/rfbserver.o: in function rfbSendFileTransferChunk:external/android-vnc-server-read-only/LibVNCServer-0.9.7/libvncserver/rfbserver.c:1364: error: undefined reference to 'compress' 
prebuilt/darwin-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: out/target/product/passion/obj/EXECUTABLES/androidvncserver_intermediates/LibVNCServer-0.9.7/libvncserver/rfbserver.o: in function rfbProcessFileTransfer:external/android-vnc-server-read-only/LibVNCServer-0.9.7/libvncserver/rfbserver.c:1626: error: undefined reference to 'uncompress' 

我在Android.mk已經添加

LOCAL_SHARED_LIBRARIES := libz 
LOCAL_SHARED_LIBRARIES := libjpeg 

LOCAL_MODULE:= androidvncserver 
LOCAL_MODULE_TAGS := optional 

LOCAL_LDLIBS := -lz 

請讓我知道我在想什麼:但是鏈接時我得到'壓縮 '解壓'

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_SRC_FILES:= \ 
    fbvncserver.c \ 
    LibVNCServer-0.9.7/libvncserver/main.c \ 
    LibVNCServer-0.9.7/libvncserver/rfbserver.c \ 
    LibVNCServer-0.9.7/libvncserver/rfbregion.c \ 
    LibVNCServer-0.9.7/libvncserver/auth.c \ 
    LibVNCServer-0.9.7/libvncserver/sockets.c \ 
    LibVNCServer-0.9.7/libvncserver/stats.c \ 
    LibVNCServer-0.9.7/libvncserver/corre.c \ 
    LibVNCServer-0.9.7/libvncserver/hextile.c \ 
    LibVNCServer-0.9.7/libvncserver/rre.c \ 
    LibVNCServer-0.9.7/libvncserver/translate.c \ 
    LibVNCServer-0.9.7/libvncserver/cutpaste.c \ 
    LibVNCServer-0.9.7/libvncserver/httpd.c \ 
    LibVNCServer-0.9.7/libvncserver/cursor.c \ 
    LibVNCServer-0.9.7/libvncserver/font.c \ 
    LibVNCServer-0.9.7/libvncserver/draw.c \ 
    LibVNCServer-0.9.7/libvncserver/selbox.c \ 
    LibVNCServer-0.9.7/libvncserver/d3des.c \ 
    LibVNCServer-0.9.7/libvncserver/vncauth.c \ 
    LibVNCServer-0.9.7/libvncserver/cargs.c \ 
    LibVNCServer-0.9.7/libvncserver/minilzo.c \ 
    LibVNCServer-0.9.7/libvncserver/ultra.c \ 
    LibVNCServer-0.9.7/libvncserver/scale.c \ 
    LibVNCServer-0.9.7/libvncserver/zlib.c \ 
    LibVNCServer-0.9.7/libvncserver/zrle.c \ 
    LibVNCServer-0.9.7/libvncserver/zrleoutstream.c \ 
    LibVNCServer-0.9.7/libvncserver/zrlepalettehelper.c \ 
    LibVNCServer-0.9.7/libvncserver/zywrletemplate.c \ 
    LibVNCServer-0.9.7/libvncserver/tight.c 

LOCAL_C_INCLUDES := \ 
    $(LOCAL_PATH) \ 
    $(LOCAL_PATH)/LibVNCServer-0.9.7/libvncserver \ 
    $(LOCAL_PATH)/LibVNCServer-0.9.7 \ 
    external/zlib \ 
    external/jpeg 

LOCAL_SHARED_LIBRARIES := libz 
LOCAL_SHARED_LIBRARIES := libjpeg 

LOCAL_MODULE:= androidvncserver 
LOCAL_MODULE_TAGS := optional 

LOCAL_LDLIBS := -lz 
include $(BUILD_EXECUTABLE) 

回答

0

我通常採用以下方式: 嘗試查看rfbserver.c到1364行。嘗試找到'compress'並找到這個變量的定義(或宏或像這樣的smth)。然後嘗試在包含文件中找到此變量的定義。當你發現他們包括這個文件到項目中。