Android NDK: Link using a pre-compiled static library

后端 未结 2 1853
陌清茗
陌清茗 2020-11-29 04:25

I\'m trying to port Jnetpcap to Android in order to use it for parsing .pcap files. Jnetpcap is a java wrapper for libpcap which uses JNI. I have compiled libpcap as a stati

相关标签:
2条回答
  • 2020-11-29 04:31

    Finally solved it. My Android.mk code:

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    LOCAL_MODULE    := libpcap 
    LOCAL_SRC_FILES := libpcap.a
    
    include $(PREBUILT_STATIC_LIBRARY)
    
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := jnetpcap
    
    LOCAL_SRC_FILES :=\
        jnetpcap.cpp\
        packet_flow.cpp\
        packet_jheader.cpp\
        jnetpcap_pcap_header.cpp\
        nio_jbuffer.cpp\
        winpcap_stat_ex.cpp\
        winpcap_send_queue.cpp\
        winpcap_ext.cpp\
        jnetpcap_ids.cpp\
        jnetpcap_dumper.cpp\
        jnetpcap_utils.cpp\
        util_in_cksum.cpp\
        jnetpcap_beta.cpp\
        nio_jmemory.cpp\
        packet_jsmall_scanner.cpp\
        packet_protocol.cpp\
        nio_jnumber.cpp\
        packet_jheader_scanner.cpp\
        library.cpp\
        packet_jscan.cpp\
        jnetpcap_pcap100.cpp\
        util_checksum.cpp\
        packet_jpacket.cpp\
        winpcap_ids.cpp\
        jnetpcap_bpf.cpp
    
    LOCAL_C_INCLUDES :=\
        /home/sergio/android-ndk-r5b/platforms/android-8/arch-arm/usr/include\
        /home/sergio/workspace/MyApp/jni/libpcap
    
    LOCAL_STATIC_LIBRARIES := libpcap
    
    include $(BUILD_SHARED_LIBRARY)
    
    0 讨论(0)
  • 2020-11-29 04:49

    You have to build pcap as static module. Something like this

    include $(CLEAR_VARS)
    LOCAL_MODULE := pcap
    LOCAL_CFLAGS := declare_flags
    LOCAL_C_INCLUDES := declare_include
    LOCAL_SRC_FILES := src_files
    include $(BUILD_STATIC_LIBRARY)
    

    This build pcap as local module which you could link with LOCAL_STATIC_LIBRARIES

    just add

    LOCAL_STATIC_LIBRARIES := pcap
    

    before calling

    include $(BUILD_SHARED_LIBRARY)
    
    0 讨论(0)
提交回复
热议问题