android - 为 Android 构建 nanomsg

标签 android android-ndk nanomsg

我有来自 here 的 nanomsg 和 Android.mk . 我尝试使用 Android NDK 为 Android 构建它。 我有错误:

[armeabi] Compile thumb  : nano <= usock.c
In file included from /home/roman/work/Nano/app/jni/src/aio/usock.c:28:0:
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc: In function 'nn_usock_recv_raw':
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1112:8: error: 'struct msghdr' has no member named 'msg_accrights'
     hdr.msg_accrights = ctrl;
        ^
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1113:8: error: 'struct msghdr' has no member named 'msg_accrightslen'
     hdr.msg_accrightslen = sizeof (int);
        ^
In file included from /home/roman/work/Nano/app/jni/src/aio/usock.c:28:0:
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1151:16: error: 'struct msghdr' has no member named 'msg_accrightslen'
         if (hdr.msg_accrightslen > 0) {
                ^
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1152:46: error: 'struct msghdr' has no member named 'msg_accrightslen'
             nn_assert (hdr.msg_accrightslen == sizeof (int));
                                              ^
In file included from /home/roman/work/Nano/app/jni/src/aio/usock.c:28:0:
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1154:45: error: 'struct msghdr' has no member named 'msg_accrights'
                 *self->in.pfd = *((int*) hdr.msg_accrights);
                                             ^
/home/roman/work/Nano/app/jni/src/aio/usock_posix.inc:1158:41: error: 'struct msghdr' has no member named 'msg_accrights'
                 nn_closefd (*((int*) hdr.msg_accrights));
                                         ^
make: *** [/home/roman/work/Nano/app/obj/local/armeabi/objs/nano/src/aio/usock.o] Error 1

有什么问题? 我希望任何人都可以提供帮助。

最佳答案

在你的 Android.mk 文件中替换你的

包含这些行的 LOCAL_CFLAGS

LOCAL_CFLAGS :=  \
    -DNN_HAVE_STDINT \
    -DNN_HAVE_CLOCK_MONOTONIC \
    -DNN_HAVE_PIPE \
    -DNN_HAVE_SOCKETPAIR \
    -DNN_HAVE_SEMAPHORE \
    -DNN_HAVE_POLL \
    -DNN_USE_POLL \
    -DNN_USE_LITERAL_IFADDR \
    -DNN_HAVE_MSG_CONTROL

还有这两行。

LOCAL_COPY_HEADERS_TO := nanomsg
LOCAL_COPY_HEADERS := nn.h bus.h reqrep.h pipeline.h pair.h survey.h pubsub.h

更多引用请查看以下链接:

https://gist.github.com/kroggen/ff49ad06e78754068be6/revisions

关于android - 为 Android 构建 nanomsg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148857/

相关文章:

java - 无法在 Android 中使用 USB 主机获取 USB 设备列表

android - React Native Android 需要在 2020 年 11 月 2 日之前针对 API 级别 29

python - nng支付nng pub/sub。客户端未收到任何消息

ZeroMQ/0mq 或 nanomsg 绑定(bind)到 Kafka?

c - libc.h : No such file or directory when compiling nanomsg pipeline sample

java - 如何使用 Java/Android 让 int 出现在 Eclipse 的 LogCat 中?

android - 使用 MediaCodec 解码原始 AAC 音频数据适用于 Android 4.4 但不适用于 4.3

strings.h 中的 Android NDK 错误,可能是由于 size_t 错误

android - 我如何从客户设备中找到相关的 deadd00d 情况?

android - 使用 Android NDK 问题调用 JNI