请教android ndk 编程时 用cygwin 编译调用第三方zmq库问题!

时间:2023-02-05 01:51:51
ndk编程时要调用第三方的zmq库,但一直调用不成功,错误为:
 error: undefined reference to 'zmq_init'

我的android工程的jni目录下的文件为:Android.mk  libzmq.a callback.c  clientzmq.c zmq.h 

其中callback.c是上层eclipse中调用的函数,clientzmq.c就是zmq的通信模块函数,里面用到zmq_init等函数,libzmq.a是已经编译好的zmq的静态库,但在cygwin下编译就会出现上述错误,我想是libzmq.a库没有加载成功,但是不知道具体是什么错误,已经两周了,都没解决,请大神帮忙啊!
我的Android.mk文件的内容为:
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true  
LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS)
LOCAL_MODULE := zmq
LOCAL_SRC_FILES := libzmq.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := myjni
LOCAL_STATIC_LIBRARIES := libzmq.a
LOCAL_SRC_FILES := callback.c clientzmq.c
include $(BUILD_SHARED_LIBRARY)

6 个解决方案

#1


'zmq_init'这个是什么

#2


zmq_init是zmq库中的一个函数,用来初始化一个zmq连接的上下文,这个函数的具体含义不是主要的,主要的是这个库中的函数,为什么不能被识别,在加载的库中找不到这些库函数,请指教!!!

#3


我也遇到了这个问题,请问你现在解决了吗???

#4


http://blog.csdn.net/doveqian/article/details/6931507 

多看看demo

#5


我的问题是和楼主一样的问题,一般的静态库能够链接成功了,就是zmq的静态库不能够链接成功了,所以我想问问楼主这个问题有没有解决了???会不会和c链接,c++链接有关,目前不清楚Android NDK build的原理了。

#6


同问,别人用服务器编译成的.a可以用。自己用eclipse建的工程生成的.a就不能用了,说找不到其中的函数。郁闷。

#1


'zmq_init'这个是什么

#2


zmq_init是zmq库中的一个函数,用来初始化一个zmq连接的上下文,这个函数的具体含义不是主要的,主要的是这个库中的函数,为什么不能被识别,在加载的库中找不到这些库函数,请指教!!!

#3


我也遇到了这个问题,请问你现在解决了吗???

#4


http://blog.csdn.net/doveqian/article/details/6931507 

多看看demo

#5


我的问题是和楼主一样的问题,一般的静态库能够链接成功了,就是zmq的静态库不能够链接成功了,所以我想问问楼主这个问题有没有解决了???会不会和c链接,c++链接有关,目前不清楚Android NDK build的原理了。

#6


同问,别人用服务器编译成的.a可以用。自己用eclipse建的工程生成的.a就不能用了,说找不到其中的函数。郁闷。