{"id":925,"date":"2015-01-02T10:33:36","date_gmt":"2015-01-02T02:33:36","guid":{"rendered":"http:\/\/guoh.ai\/lifelog\/?p=925"},"modified":"2015-01-02T10:33:36","modified_gmt":"2015-01-02T02:33:36","slug":"cross-compiling-libevent-for-android-on-os-x","status":"publish","type":"post","link":"https:\/\/guoh.ai\/lifelog\/2015\/01\/cross-compiling-libevent-for-android-on-os-x\/","title":{"rendered":"OS X \u4e0a\u4ea4\u53c9\u7f16\u8bd1\u5728 Android \u4e0a\u8fd0\u884c\u7684 libevent"},"content":{"rendered":"<div class=\"gfmr-markdown-container\"><div class=\"gfmr-markdown-source\" style=\"display: none;\">&lt;p&gt;\u4e0b\u8f7d\u5b98\u65b9\u6e90\u7801 \u8fd9\u91cc\u4f7f\u7528\u7684\u662f libevent-2.0.21&lt;\/p&gt;\n&lt;p&gt;\u9996\u5148\u770b\u4e86\u4e0b\u8fd9\u51e0\u7bc7\u6587\u7ae0&lt;\/p&gt;\n&lt;p&gt;&lt;a href=&quot;http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646&lt;\/a&gt;&lt;br \/&gt;\n&lt;a href=&quot;http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641&lt;\/a&gt;&lt;br \/&gt;\n&lt;a href=&quot;http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html&lt;\/a&gt;&lt;br \/&gt;\n\u6ce8\u610f\uff0c\u4ee5\u4e0b $ANDROID_NDK \u90fd\u662f\u672c\u673a\u4e0a NDK \u7684\u8def\u5f84&lt;\/p&gt;\n&lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt;\r\nexport ANDROID_ROOT=$ANDROID_NDK\r\n\r\nexport PATH=$PATH:$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/bin\r\n\r\n .\/configure \\\r\n --host=arm-linux-androideabi \\\r\n CC=arm-linux-androideabi-gcc \\\r\n LD=arm-linux-androideabi-ld \\\r\n CPPFLAGS=&quot;-I$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/include\/&quot; \\\r\n CFLAGS=&quot;-nostdlib&quot; \\\r\n LDFLAGS=&quot;-Wl,-rpath-link=$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/ -L$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/&quot; \\\r\n LIBS=&quot;-lc -lgcc -L$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/lib\/gcc\/arm-linux-androideabi\/4.9&quot;\r\n\r\nln -s $ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/crtbegin_so.o\r\nln -s $ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/crtend_so.o\r\n\r\nmake\r\n&lt;\/pre&gt;\n&lt;p&gt;\u8fd8\u6709\u53e6\u5916\u4e00\u79cd\u65b9\u6cd5\uff0c\u770b\u8d77\u6765\u6bd4\u8f83\u6b63\u89c4\u70b9&lt;\/p&gt;\n&lt;p&gt;&lt;a href=&quot;http:\/\/stackoverflow.com\/questions\/11929773\/compiling-the-latest-openssl-for-android&quot; target=&quot;_blank&quot;&gt;http:\/\/stackoverflow.com\/questions\/11929773\/compiling-the-latest-openssl-for-android&lt;\/a&gt;&lt;\/p&gt;\n&lt;p&gt;\u4ee5\u4e0b\u662f\u7f16\u8bd1armv7-a\u7684\u65b9\u6cd5(\u5176\u5b83arch\u9700\u8981\u7a0d\u5fae\u8c03\u6574\u4e0b)&lt;\/p&gt;\n&lt;p&gt;\u6ce8\u610f\uff0c\u4ee5\u4e0b $ANDROID_NDK \u90fd\u662f\u672c\u673a\u4e0a NDK \u7684\u8def\u5f84&lt;\/p&gt;\n&lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt;\r\nexport NDK=$ANDROID_NDK\r\n$NDK\/build\/tools\/make-standalone-toolchain.sh --platform=android-14 --toolchain=arm-linux-androideabi-4.9 --install-dir=`pwd`\/android-toolchain-arm\r\nexport TOOLCHAIN_PATH=`pwd`\/android-toolchain-arm\/bin\r\nexport TOOL=arm-linux-androideabi\r\nexport NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}\/${TOOL}\r\nexport CC=$NDK_TOOLCHAIN_BASENAME-gcc\r\nexport CXX=$NDK_TOOLCHAIN_BASENAME-g++\r\nexport LINK=${CXX}\r\nexport LD=$NDK_TOOLCHAIN_BASENAME-ld\r\nexport AR=$NDK_TOOLCHAIN_BASENAME-ar\r\nexport RANLIB=$NDK_TOOLCHAIN_BASENAME-ranlib\r\nexport STRIP=$NDK_TOOLCHAIN_BASENAME-strip\r\nexport ARCH_FLAGS=&quot;-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16&quot;\r\nexport ARCH_LINK=&quot;-march=armv7-a -Wl,--fix-cortex-a8&quot;\r\nexport CPPFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 &quot;\r\nexport CXXFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions &quot;\r\nexport CFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 &quot;\r\nexport LDFLAGS=&quot; ${ARCH_LINK} &quot;\r\n\r\n.\/configure --host=arm-linux-androideabi\r\n&lt;\/pre&gt;\n&lt;p&gt;\u5c31\u4f1a\u5728 .libs \u4e0b\u751f\u6210 so\/a \u6863\u6848&lt;\/p&gt;\n&lt;p&gt;\u4f8b\u5b50\u7a0b\u5e8f\u7a0b\u5e8f\u8c03\u7528\u8fc7\u7a0b\u5f53\u4e2d\u9047\u5230\u7684\u95ee\u9898\uff0c\u5177\u4f53\u5b8c\u6574\u4ee3\u7801\u53c2\u89c1 &lt;a href=&quot;https:\/\/github.com\/guohai\/and-libevent&quot; target=&quot;_blank&quot;&gt;https:\/\/github.com\/guohai\/and-libevent&lt;\/a&gt;&lt;\/p&gt;\n&lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt;\r\nguohai@Hais-MacBook-Pro:~\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni$ ndk-build V=1 -B\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/lib*.so\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/gdbserver\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/gdb.setup\r\n&#x5B;armeabi-v7a] Compile thumb  : demo_libevent &lt;= demo_libevent.c\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/arm-linux-androideabi-gcc -MMD -MP -MF \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb -Os -g -DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni -DANDROID  -Wa,--noexecstack -Wformat -Werror=format-security    -I\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/include -c  \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/demo_libevent.c -o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o\r\n&amp;#91;armeabi-v7a&amp;#93; Executable     : demo_libevent\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/arm-linux-androideabi-g++ -Wl,--gc-sections -Wl,-z,nocopyreloc --sysroot=\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm -Wl,-rpath-link=\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib -Wl,-rpath-link=\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_core.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_extra.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_pthreads.a -lgcc -no-canonical-prefixes -march=armv7-a -Wl,--fix-cortex-a8  -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now  -L\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib -llog -lc -lm -o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/demo_libevent\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld: \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent.a(event.o): in function evthread_make_base_notifiable:event.c(.text.evthread_make_base_notifiable+0x5c): error: undefined reference to &#039;eventfd&#039;\r\ncollect2: ld returned 1 exit status\r\nmake: *** &amp;#91;\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/demo_libevent&amp;#93; Error 1\r\n&amp;#91;\/bash&amp;#93;\r\n\r\n&lt;strong&gt;eventfd&lt;\/strong&gt; \u662f 2.6.22 \u52a0\u5165\u5230\u5185\u6838\u5f53\u4e2d\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u7136\u540e\u9ed8\u8ba4\u5199\u7684 -L\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib \u5185\u6838\u6bd4\u8f83\u4f4e\uff0c\u4e8e\u662f\u4fee\u6539\r\n\r\n&#x5B;bash]\r\nAPP_PLATFORM := android-14\r\n&lt;\/pre&gt;\n&lt;p&gt;\u7f16\u8bd1\u901a\u8fc7&lt;\/p&gt;\n&lt;p&gt;\u5728\u6a21\u62df\u5668\u4e0a\u542f\u52a8\u7a0b\u5e8f\uff0c\u914d\u7f6e\u7aef\u53e3\u8f6c\u53d1\uff0c\u6d4b\u8bd5&lt;\/p&gt;\n&lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt;\r\nguohai@Hais-MacBook-Pro:~$ adb forward tcp:9995 tcp:9995\r\n\r\nguohai@Hais-MacBook-Pro:~$ telnet localhost 9995\r\nTrying ::1...\r\ntelnet: connect to address ::1: Connection refused\r\nTrying 127.0.0.1...\r\nConnected to localhost.\r\nEscape character is &#039;^]&#039;.\r\nHello, World!\r\nConnection closed by foreign host.\r\n&lt;\/pre&gt;\n&lt;p&gt;\u670d\u52a1\u5668\u7aef\u7684\u53cd\u9988&lt;\/p&gt;\n&lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt;\r\nroot@generic:\/data\/data # .\/demo_libevent                                        \r\nflushed answer\r\n^CCaught an interrupt signal; exiting cleanly in two seconds.\r\ndone\r\nroot@generic:\/data\/data # exit\r\n&lt;\/pre&gt;\n<\/div><div class=\"gfmr-markdown-rendered\"><p>\u4e0b\u8f7d\u5b98\u65b9\u6e90\u7801 \u8fd9\u91cc\u4f7f\u7528\u7684\u662f libevent-2.0.21<\/p>\n<p>\u9996\u5148\u770b\u4e86\u4e0b\u8fd9\u51e0\u7bc7\u6587\u7ae0<\/p>\n<p><a href=\"http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646\" target=\"_blank\">http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646<\/a><br \/>\n<a href=\"http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641\" target=\"_blank\">http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641<\/a><br \/>\n<a href=\"http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html\" target=\"_blank\">http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html<\/a><br \/>\n\u6ce8\u610f\uff0c\u4ee5\u4e0b $ANDROID_NDK \u90fd\u662f\u672c\u673a\u4e0a NDK \u7684\u8def\u5f84<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nexport ANDROID_ROOT=$ANDROID_NDK\r\n\r\nexport PATH=$PATH:$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/bin\r\n\r\n .\/configure \\\r\n --host=arm-linux-androideabi \\\r\n CC=arm-linux-androideabi-gcc \\\r\n LD=arm-linux-androideabi-ld \\\r\n CPPFLAGS=&quot;-I$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/include\/&quot; \\\r\n CFLAGS=&quot;-nostdlib&quot; \\\r\n LDFLAGS=&quot;-Wl,-rpath-link=$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/ -L$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/&quot; \\\r\n LIBS=&quot;-lc -lgcc -L$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/lib\/gcc\/arm-linux-androideabi\/4.9&quot;\r\n\r\nln -s $ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/crtbegin_so.o\r\nln -s $ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/crtend_so.o\r\n\r\nmake\r\n<\/pre>\n<p>\u8fd8\u6709\u53e6\u5916\u4e00\u79cd\u65b9\u6cd5\uff0c\u770b\u8d77\u6765\u6bd4\u8f83\u6b63\u89c4\u70b9<\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/11929773\/compiling-the-latest-openssl-for-android\" target=\"_blank\">http:\/\/stackoverflow.com\/questions\/11929773\/compiling-the-latest-openssl-for-android<\/a><\/p>\n<p>\u4ee5\u4e0b\u662f\u7f16\u8bd1armv7-a\u7684\u65b9\u6cd5(\u5176\u5b83arch\u9700\u8981\u7a0d\u5fae\u8c03\u6574\u4e0b)<\/p>\n<p>\u6ce8\u610f\uff0c\u4ee5\u4e0b $ANDROID_NDK \u90fd\u662f\u672c\u673a\u4e0a NDK \u7684\u8def\u5f84<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nexport NDK=$ANDROID_NDK\r\n$NDK\/build\/tools\/make-standalone-toolchain.sh --platform=android-14 --toolchain=arm-linux-androideabi-4.9 --install-dir=`pwd`\/android-toolchain-arm\r\nexport TOOLCHAIN_PATH=`pwd`\/android-toolchain-arm\/bin\r\nexport TOOL=arm-linux-androideabi\r\nexport NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}\/${TOOL}\r\nexport CC=$NDK_TOOLCHAIN_BASENAME-gcc\r\nexport CXX=$NDK_TOOLCHAIN_BASENAME-g++\r\nexport LINK=${CXX}\r\nexport LD=$NDK_TOOLCHAIN_BASENAME-ld\r\nexport AR=$NDK_TOOLCHAIN_BASENAME-ar\r\nexport RANLIB=$NDK_TOOLCHAIN_BASENAME-ranlib\r\nexport STRIP=$NDK_TOOLCHAIN_BASENAME-strip\r\nexport ARCH_FLAGS=&quot;-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16&quot;\r\nexport ARCH_LINK=&quot;-march=armv7-a -Wl,--fix-cortex-a8&quot;\r\nexport CPPFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 &quot;\r\nexport CXXFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions &quot;\r\nexport CFLAGS=&quot; ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 &quot;\r\nexport LDFLAGS=&quot; ${ARCH_LINK} &quot;\r\n\r\n.\/configure --host=arm-linux-androideabi\r\n<\/pre>\n<p>\u5c31\u4f1a\u5728 .libs \u4e0b\u751f\u6210 so\/a \u6863\u6848<\/p>\n<p>\u4f8b\u5b50\u7a0b\u5e8f\u7a0b\u5e8f\u8c03\u7528\u8fc7\u7a0b\u5f53\u4e2d\u9047\u5230\u7684\u95ee\u9898\uff0c\u5177\u4f53\u5b8c\u6574\u4ee3\u7801\u53c2\u89c1 <a href=\"https:\/\/github.com\/guohai\/and-libevent\" target=\"_blank\">https:\/\/github.com\/guohai\/and-libevent<\/a><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nguohai@Hais-MacBook-Pro:~\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni$ ndk-build V=1 -B\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/lib*.so \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/lib*.so\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/gdbserver \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/gdbserver\r\nrm -f \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/arm64-v8a\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/armeabi-v7a-hard\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/mips64\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86\/gdb.setup \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/libs\/x86_64\/gdb.setup\r\n&#x5B;armeabi-v7a] Compile thumb  : demo_libevent &lt;= demo_libevent.c\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/arm-linux-androideabi-gcc -MMD -MP -MF \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb -Os -g -DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni -DANDROID  -Wa,--noexecstack -Wformat -Werror=format-security    -I\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/include -c  \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/demo_libevent.c -o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o\r\n&amp;#91;armeabi-v7a&amp;#93; Executable     : demo_libevent\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/arm-linux-androideabi-g++ -Wl,--gc-sections -Wl,-z,nocopyreloc --sysroot=\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm -Wl,-rpath-link=\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib -Wl,-rpath-link=\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/objs\/demo_libevent\/demo_libevent.o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_core.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_extra.a \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent_pthreads.a -lgcc -no-canonical-prefixes -march=armv7-a -Wl,--fix-cortex-a8  -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now  -L\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib -llog -lc -lm -o \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/demo_libevent\r\n\/Users\/guohai\/Dev\/android-ndk-r10c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/darwin-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld: \/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/jni\/libevent.a(event.o): in function evthread_make_base_notifiable:event.c(.text.evthread_make_base_notifiable+0x5c): error: undefined reference to &#039;eventfd&#039;\r\ncollect2: ld returned 1 exit status\r\nmake: *** &amp;#91;\/Users\/guohai\/Dev\/work\/idea\/and-libevent\/app\/src\/main\/obj\/local\/armeabi-v7a\/demo_libevent&amp;#93; Error 1\r\n&amp;#91;\/bash&amp;#93;\r\n\r\n&lt;strong&gt;eventfd&lt;\/strong&gt; \u662f 2.6.22 \u52a0\u5165\u5230\u5185\u6838\u5f53\u4e2d\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u7136\u540e\u9ed8\u8ba4\u5199\u7684 -L\/Users\/guohai\/Dev\/android-ndk-r10c\/platforms\/android-3\/arch-arm\/usr\/lib \u5185\u6838\u6bd4\u8f83\u4f4e\uff0c\u4e8e\u662f\u4fee\u6539\r\n\r\n&#x5B;bash]\r\nAPP_PLATFORM := android-14\r\n<\/pre>\n<p>\u7f16\u8bd1\u901a\u8fc7<\/p>\n<p>\u5728\u6a21\u62df\u5668\u4e0a\u542f\u52a8\u7a0b\u5e8f\uff0c\u914d\u7f6e\u7aef\u53e3\u8f6c\u53d1\uff0c\u6d4b\u8bd5<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nguohai@Hais-MacBook-Pro:~$ adb forward tcp:9995 tcp:9995\r\n\r\nguohai@Hais-MacBook-Pro:~$ telnet localhost 9995\r\nTrying ::1...\r\ntelnet: connect to address ::1: Connection refused\r\nTrying 127.0.0.1...\r\nConnected to localhost.\r\nEscape character is &#039;^]&#039;.\r\nHello, World!\r\nConnection closed by foreign host.\r\n<\/pre>\n<p>\u670d\u52a1\u5668\u7aef\u7684\u53cd\u9988<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nroot@generic:\/data\/data # .\/demo_libevent                                        \r\nflushed answer\r\n^CCaught an interrupt signal; exiting cleanly in two seconds.\r\ndone\r\nroot@generic:\/data\/data # exit\r\n<\/pre>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&lt;p&gt;\u4e0b\u8f7d\u5b98\u65b9\u6e90\u7801 \u8fd9\u91cc\u4f7f\u7528\u7684\u662f libevent-2.0.21&lt;\/p&gt; &lt;p&gt;\u9996\u5148\u770b\u4e86\u4e0b\u8fd9\u51e0\u7bc7\u6587\u7ae0&lt;\/p&gt; &lt;p&gt;&lt;a href=&quot;http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.csdn.net\/sozell\/article\/details\/8898646&lt;\/a&gt;&lt;br \/&gt; &lt;a href=&quot;http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.csdn.net\/cutesource\/article\/details\/8970641&lt;\/a&gt;&lt;br \/&gt; &lt;a href=&quot;http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html&quot; target=&quot;_blank&quot;&gt;http:\/\/blog.chinaunix.net\/uid-20514606-id-485808.html&lt;\/a&gt;&lt;br \/&gt; \u6ce8\u610f\uff0c\u4ee5\u4e0b $ANDROID_NDK \u90fd\u662f\u672c\u673a\u4e0a NDK \u7684\u8def\u5f84&lt;\/p&gt; &lt;pre class=&quot;brush: bash; title: ; notranslate&quot; title=&quot;&quot;&gt; export ANDROID_ROOT=$ANDROID_NDK export PATH=$PATH:$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/bin .\/configure \\ &#8211;host=arm-linux-androideabi \\ CC=arm-linux-androideabi-gcc \\ LD=arm-linux-androideabi-ld \\ CPPFLAGS=&quot;-I$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/include\/&quot; \\ CFLAGS=&quot;-nostdlib&quot; \\ LDFLAGS=&quot;-Wl,-rpath-link=$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/ -L$ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/&quot; \\ LIBS=&quot;-lc -lgcc -L$ANDROID_ROOT\/toolchains\/arm-linux-androideabi-4.9\/prebuilt\/darwin-x86_64\/lib\/gcc\/arm-linux-androideabi\/4.9&quot; ln -s $ANDROID_ROOT\/platforms\/android-14\/arch-arm\/usr\/lib\/crtbegin_so.o ln -s &hellip; <a href=\"https:\/\/guoh.ai\/lifelog\/2015\/01\/cross-compiling-libevent-for-android-on-os-x\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">OS X \u4e0a\u4ea4\u53c9\u7f16\u8bd1\u5728 Android \u4e0a\u8fd0\u884c\u7684 libevent<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gfmr_meta_descriptions":[],"_gfmr_multilingual_taxonomy_terms":[],"footnotes":""},"categories":[7,28],"tags":[],"class_list":["post-925","post","type-post","status-publish","format-standard","hentry","category-android","category-cpp"],"_links":{"self":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/comments?post=925"}],"version-history":[{"count":5,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/925\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/925\/revisions\/930"}],"wp:attachment":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/media?parent=925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/categories?post=925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/tags?post=925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}