为什么 ndk build 生成的so 会加上奇怪的前缀 _Z+数字

我想用 ndk 生成lua 的交互 so 以供 lua使用

这是源码

#include <math.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

int ding_sum2(lua_State *L){
    double d1 = luaL_checknumber(L, 1);
    double d2 = luaL_checknumber(L, 2);
    lua_pushnumber(L, d1+d2);
    return 1;
}

const struct luaL_Reg ding_lib[] = {
    {"ding_sum2" , ding_sum2},
    {NULL, NULL}
};

int luaopen_ding_lib(lua_State *L){
    luaL_newlib(L, ding_lib); // 5.2
    //luaL_register(L, "ding_lib",ding_lib); // lua 5.1
    return 1;
}

这是 Linux 下 nm -D .so 的结果

他为什么要加上 _Z+数字这种奇怪的前缀

这样lua 就没法正确识别了啊.

上面还有未列出
00002004 A __bss_start
         U __cxa_atexit
         U __cxa_finalize
00002004 A _edata
00002004 A _end
         U __stack_chk_fail
         U _Z13luaL_setfuncsP9lua_StatePK8luaL_Regi
         U _Z14lua_pushnumberP9lua_Stated
         U _Z15lua_createtableP9lua_Stateii
         U _Z16luaL_checknumberP9lua_Statei
00000620 T _Z16luaopen_ding_libP9lua_State

如果是用gcc 直接编译 就是这样

上面还有未列出
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w _Jv_RegisterClasses
                 U luaL_checknumber
                 U luaL_register
00000000000007dd T luaopen_ding_lib
                 U lua_pushnumber

这是什么原因呢 应该怎么解决呢

下面是 Android.mk

LOCAL_PATH      := $(call my-dir)
TARGET_ARCH     := arm
TARGET_PLATFORM := android-14
include $(CLEAR_VARS)

LOCAL_CFLAGS += -D__linux__ -D__embedded__ -D__android__ -W -Wall

MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_SRC_FILES := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)
LOCAL_C_INCLUDES       := C:\BC\lua-5.2.0\src
LOCAL_MODULE           := libNative

LOCAL_LDLIBS           := -llog
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LOCAL_LDLIBS           +=-L$(SYSROOT)/usr/lib -llog

include $(BUILD_SHARED_LIBRARY)
$(call import-module, android/support)

1个回答

好蠢 编译成c语言就行了!!!!!!!!!!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么 ndk build 生成的so 会加上奇怪的前缀 _Z+数字
我想用 ndk 生成lua 的交互 so 以供 lua使用 这是源码 ``` #include <math.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> int ding_sum2(lua_State *L){ double d1 = luaL_checknumber(L, 1); double d2 = luaL_checknumber(L, 2); lua_pushnumber(L, d1+d2); return 1; } const struct luaL_Reg ding_lib[] = { {"ding_sum2" , ding_sum2}, {NULL, NULL} }; int luaopen_ding_lib(lua_State *L){ luaL_newlib(L, ding_lib); // 5.2 //luaL_register(L, "ding_lib",ding_lib); // lua 5.1 return 1; } ``` 这是 Linux 下 nm -D .so 的结果 他为什么要加上 _Z+数字这种奇怪的前缀 这样lua 就没法正确识别了啊. ``` 上面还有未列出 00002004 A __bss_start U __cxa_atexit U __cxa_finalize 00002004 A _edata 00002004 A _end U __stack_chk_fail U _Z13luaL_setfuncsP9lua_StatePK8luaL_Regi U _Z14lua_pushnumberP9lua_Stated U _Z15lua_createtableP9lua_Stateii U _Z16luaL_checknumberP9lua_Statei 00000620 T _Z16luaopen_ding_libP9lua_State ``` 如果是用gcc 直接编译 就是这样 ``` 上面还有未列出 w _ITM_deregisterTMCloneTable w _ITM_registerTMCloneTable w _Jv_RegisterClasses U luaL_checknumber U luaL_register 00000000000007dd T luaopen_ding_lib U lua_pushnumber ``` 这是什么原因呢 应该怎么解决呢 下面是 Android.mk ``` LOCAL_PATH := $(call my-dir) TARGET_ARCH := arm TARGET_PLATFORM := android-14 include $(CLEAR_VARS) LOCAL_CFLAGS += -D__linux__ -D__embedded__ -D__android__ -W -Wall MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/*.cpp) LOCAL_SRC_FILES := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := C:\BC\lua-5.2.0\src LOCAL_MODULE := libNative LOCAL_LDLIBS := -llog LOCAL_ALLOW_UNDEFINED_SYMBOLS := true LOCAL_LDLIBS +=-L$(SYSROOT)/usr/lib -llog include $(BUILD_SHARED_LIBRARY) $(call import-module, android/support) ```
AndroidStudio使用NDK生成静态库的方法?
大家都知道如果在Eclipse下用NDK静态库(.a)和动态库(.SO),只要在Android.mk中把(BUILD_STATIC_LIBRARY)换成(BUILD_SHARED_LIBRARY)就可以了。但是在AndroidStudio中自动生成MK文件,所以生成的是SO文件,那么请问下怎么配置一下才能自动生成.a静态库呢?
AndroidStudio 编译通过没有生成NDK包和SO库
AndroidStudio 编译通过没有生成NDK包和SO库。 按照网上各种教程新建了java文件,用javah生成了头文件,以及写好了方法的实现。 配置了CMakelList文件,和gradle.properties和local.properties。JNI路径没有问题,编译后build文件夹下就是没有ndk生成。![文件结构](https://img-ask.csdn.net/upload/201803/26/1522035214_402679.png) ![gradle.properties和local.properties](https://img-ask.csdn.net/upload/201803/26/1522035240_916049.png) ![gradle.properties和local.properties](https://img-ask.csdn.net/upload/201803/26/1522035262_192554.png) ![最后生成build里面的结构](https://img-ask.csdn.net/upload/201803/26/1522035273_652964.png) 难道跟我自己添加的.c和cpp文件有关系吗?
Android开发调用C程序,Ndk-build生成库时老是崩溃!!!
之前因为项目需求所以要用到jni调用c程序,生成so库,所以我按照jni调用的流程生成了jni头文件,编写了对应的C程序,配置文件也弄好了,但一到了ndk-build时就会崩溃,弹出make.exe已停止工作,如下图所示。。。 ![图片说明](https://img-ask.csdn.net/upload/201807/30/1532958112_2737.jpg) 一开始我以为是代码的问题,于是自己写了个简单的demo,但用到ndk-build时还是出同样地错误。。。 请教各位大神有没有遇到这种情况,或者相应的解决办法。 哎,被这个问题卡了好久,感觉好急。。。。
编译ndk-build.cmd生成.so文件中出现这样的问题,不知道哪的原因。
E:\project\CHENWEN\proj.android\jni>ndk-build [armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp In file included from D:/android-ndk-r10/sources/cxx-stl/gnu-libstdc++/4.6/inclu de/thread:35:0, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../base/CCConsole.h:42, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../base/ccMacros.h:35, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../base/CCRefPtr.h:30, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../cocos2d.h:42, from E:/project/CHENWEN/proj.android//jni/../../Classes/AppDele gate.h:4, from E:/project/CHENWEN/proj.android//jni/hellocpp/main.cpp:1: D:/android-ndk-r10/sources/cxx-stl/gnu-libstdc++/4.6/include/bits/c++0x_warning. h:32:2: error: #error This file requires compiler and library support for the IS O C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options. In file included from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../platform/CCGL.h:36:0, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../base/ccTypes.h:36, from E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3 d/../cocos2d.h:51, from E:/project/CHENWEN/proj.android//jni/../../Classes/AppDele gate.h:4, from E:/project/CHENWEN/proj.android//jni/hellocpp/main.cpp:1: E:/project/CHENWEN/proj.android//jni/../../cocos2d/cocos/3d/../platform/android/ CCGL-android.h:44:31: fatal error: GLES2/gl2platform.h: No such file or director y compilation terminated. make.exe: *** [E:/project/CHENWEN/proj.android//obj/local/armeabi/objs/cocos2dcp p_shared/hellocpp/main.o] Error 1
android NDK 运用调用C ndk-build
yxy@yxy-Lenovo-V470:~/workspace2/JNITest1$ ndk-build make: *** 没有规则可以创建“obj/local/armeabi/objs/JNITest/com_example_jnitest1_JNITest.o”需要的目标“/com_example_jnitest1_JNITest.c”。 停止。 yxy@yxy-Lenovo-V470:~/workspace2/JNITest1$ 下面是我的.mk文件 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libJNITest LOCAL_SRC_FILES :=com_example_jnitest1_JNITest.c include $(BUILD_SHARED_LIBRARY)
如何解决android NDK开发中的NDK_PROJECT_PATH
在编译的过程中会报出的错误,导致程序编译失败 Android NDK: Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it. /Users/****/Downloads/android-ndk-r9c/build/core/build-local.mk:148: *** Android NDK: Aborting . Stop.
android执行NDK生成的可执行文件的问题
我打算在Android中实现NDK生成的libinj.so文件的执行,参考的是这套逻辑: http://www.linuxidc.com/Linux/2011-08/40901.htm 使用输入输出流过程中,执行提升权限、“ls”、复制及改名等shell命令都可以,但就是无法执行inj这个可执行文件。在adb shell里手动输入这套逻辑,可以得到期待的结果,但就是无法用代码实现。我也尝试使用Runtime.getRuntime().exec(cmd)来执行这些指令,但得到的结果是一样的。请问有人知道如何在android中执行NDK生成的可执行文件吗?
Android Studio NDK开发同时加载多个SO文件时该如何配置
使用AS学习NDK开发时,当DEMO中只用到一个SO文件,开发、调试均正常。 AS在开发NDK时是不需要手动编写Android.mk和Application.mk的,而通过配置build.gradle文件,可以自动在build目录下生成Android.mk,但是在配置build.gradle文件时,发现在ndk{...}中,只能配置一个moduleName,而这个moduleName正是编译后生成的SO文件名,请问现在需要加载多个SO文件时,这个build.gradle文件该如何配置? build.gradle文件: defaultConfig { ... ndk { moduleName "hello_jni" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86" } }
webrtc编译Android版本编译参数is_clang=false时,编译报错,is_clang=true时,编译成功。
[2274/3376] LINK ./rgba_to_i420_converter FAILED: rgba_to_i420_converter exe.unstripped/rgba_to_i420_converter python "../../build/toolchain/gcc_link_wrapper.py" --output="./rgba_to_i420_converter" --strip="../../buildtools/third_party/eu-strip/bin/eu-strip" --unstripped-file="./exe.unstripped/rgba_to_i420_converter" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -fuse-ld=gold -Wl,--icf=all -Wl,--exclude-libs=libgcc.a -Wl,--exclude-libs=libvpx_assembly_arm.a --target=aarch64-linux-android -Wl,-mllvm,-enable-machine-outliner=never -Wl,--warn-shared-textrel -Wl,-O2 -Wl,--gc-sections -nodefaultlibs --sysroot=../../third_party/android_ndk/platforms/android-21/arch-arm64 -nostdlib -Wl,--warn-shared-textrel -pie -Bdynamic -Wl,-z,nocopyreloc -Wl,--dynamic-linker,/system/bin/linker64 -L../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -o "./exe.unstripped/rgba_to_i420_converter" -Wl,--start-group @"./rgba_to_i420_converter.rsp" -Wl,--end-group ../../third_party/android_ndk/platforms/android-21/arch-arm64/usr/lib/crtbegin_dynamic.o -lc -lgcc_s -lm -lrt -landroid_support ../../third_party/android_ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a -ldl -llog -lGLESv2 ../../third_party/android_ndk/platforms/android-21/arch-arm64/usr/lib/crtend_android.o /usr/bin/ld.gold: fatal error: obj/rtc_tools/rgba_to_i420_converter/converter.o: unsupported ELF machine number 183 clang: error: linker command failed with exit code 1 (use -v to see invocation)
怎么解决 undefined reference to AAssetManager_FromJava
我用cmake 编译 一个c++项目时出现 ``` undefined reference to AAssetManager_FromJava ``` 非AndroidStudio环境下 如果在 AndroidStudio下 gradle里加 ``` find_libary(android) ``` 是可以的 但是我在外部环境中用find_libary报找不到 ``` android-config.cmake ``` Android.mk可以编译通过 我知道应该是相关的静态库没有链接上, 可不知道该如何处理 请问如何处理可以用 cmake 编译通过 用的是cmake 3.6, toolchain是ndk自带的android.toolchain.cmake
【求助】有没有大佬做过AndroidStudio通过JNI NDK调用第三方so库?
我现在用JNI NDK调用,通过dlopen方法打开想要调用的so库,可是他这个dlopen只能打开jniLibs文件下的so库,但这个文件夹又是ndk-build才会生成,所以我现在按照网上的办法,写Android.mk ,将这个库在ndk-build的同时复制进jniLibs的路径下,但是他只能生成X86CPU架构的so,我在Application.mk 里边APP_ABI := all就会出错 可是只生成这一种so,程序又运行不了,有没有大佬知道怎么办? ![图片说明](https://img-ask.csdn.net/upload/201711/05/1509884321_223110.png) ![图片说明](https://img-ask.csdn.net/upload/201711/05/1509884348_447680.png) ![图片说明](https://img-ask.csdn.net/upload/201711/05/1509884360_470711.png) ![图片说明](https://img-ask.csdn.net/upload/201711/05/1509884369_706681.png) ![图片说明](https://img-ask.csdn.net/upload/201711/05/1509884378_352612.png)
android ndk 引入已有的.so文件,编译时消失,求大牛
我有个android ndk工程,引入了已有的.so文件(copy 到libs\armeabi文件下)。编译的时候,就只生成了自有的.so文件,copy的已有的.so文件都消失。我怎样才能引入第三方.so文件呢,求大牛
NDK build.grade 配置报错
ExError:Execution failed for task ':Fishbowl:buildNative'. > Process 'command '/Users/apple/Library/Android/sdk/ndk-bundle/ndk-build'' finished with non-zero exit value 2
报错ndk-build.cmdfinished with non-zero exit value 2
请问大神,Error:Execution failed for task ':libuvccamera:ndkBuild'. > Process 'command 'D:\work\ndk\android-ndk-r13b/ndk-build.cmd'' finished with non-zero exit value 2这个如何解决,谢谢
运行pocketsphinxDemo,ndk-build出错,Error1
1. 在demo的jni 下运行ndk-build得到的部分错误信息: ```/home/nkumtl/workspace/ndk32/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/nkumtl/sphinx/demo/obj/local/armeabi/objs-debug/pocketsphinx_jni/pocketsphinx_wrap.o: in function ps_decoder_s_getHyp:/home/nkumtl/sphinx/demo/jni/pocketsphinx_wrap.c:874: error: undefined reference to 'new_Hypothesis' collect2: ld returned 1 exit status make: *** [/home/nkumtl/sphinx/demo/obj/local/armeabi/libpocketsphinx_jni.so] Error 1 ``` 本来在没有安装adt jdk之前(只有命令行安装的eclipse的时候)是没有报错的,安了以后就错了。error1到底是什么的错呢。 路径什么的都应该是没有错的,在Android.mk中需要改的两处也都改了。 2. 看有的大神说 这个问题 ``` undefined reference to 'new_Hypothesis' ``` 是swig版本的问题,我已经换了swig1.3.40,但还是没有用。 求帮助。。。 3. 还有想问一下打印出来的类似的 ```[armeabi] Compile thumb : pocketsphinx <= acmod.c [armeabi] Compile thumb : pocketsphinx <= bin_mdef.c [armeabi] Compile thumb : pocketsphinx <= blkarray_list.c [armeabi] Compile thumb : pocketsphinx <= dict.c [armeabi] Compile thumb : pocketsphinx <= dict2pid.c [armeabi] Compile thumb : pocketsphinx <= fsg_history.c [armeabi] Compile thumb : pocketsphinx <= fsg_lextree.c [armeabi] Compile thumb : pocketsphinx <= fsg_search.c [armeabi] Compile arm : pocketsphinx <= hmm.c [armeabi] Compile thumb : pocketsphinx <= mdef.c [armeabi] Compile arm : pocketsphinx <= ms_gauden.c [armeabi] Compile arm : pocketsphinx <= ms_mgau.c ``` 这些是错误吗?我有点迷惑这些是什么。
android ndk生成的so库, 如何在java程序里调用?
把so库放到Android项目是可以跑的, 但放在java项目就不可以了. 我把so库复制到java项目的libs文件夹, 指定好java.library.path, 总是报java.lang.UnsatisfiedLinkError错误. 最后试了jna调用, 还是报错: java.lang.UnsatisfiedLinkError: Unable to load library 'libSmartAppUpdate': 找不到指定的模块。 我以前没用jni做过项目, 这两天踩了很多坑才把so编译出来的, 可能我没有配置什么, 导致失败, 知道的求帮忙下, 谢谢!! 我没C币了... 求好心人帮帮忙
'ndk-build' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
进行Android ndk开发,在terminal中执行ndk-build命令一直提示 “不是内部或外部命令,也不是可运行的程序 或批处理文件“,是什么原因?(确实已经将路径添加到环境变量path中了)
qt5.12.4安卓编译问题,生成不了apk, 求助这是哪里的问题?报错如下
20:35:47: 为项目app2执行步骤 ... 20:35:47: 配置没有改变, 跳过 qmake 步骤。 20:35:47: 正在启动 "E:\Android\android-ndk-r18b\prebuilt\windows-x86_64\bin\make.exe" -j12 make: Nothing to be done for `first'. 20:35:48: 进程"E:\Android\android-ndk-r18b\prebuilt\windows-x86_64\bin\make.exe"正常退出。 20:35:48: Removing directory D:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build/assets 20:35:48: Removing directory D:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build/libs 20:35:48: 正在启动 "E:\Android\android-ndk-r18b\prebuilt\windows-x86_64\bin\make.exe" "INSTALL_ROOT=D:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build" install E:\App\Qt\5.12.4\android_armv7\bin\qmake.exe -install qinstall -exe libapp2.so D:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build\libs\armeabi-v7a\libapp2.so 20:35:49: 进程"E:\Android\android-ndk-r18b\prebuilt\windows-x86_64\bin\make.exe"正常退出。 20:35:49: Starting: "E:\App\Qt\5.12.4\android_armv7\bin\androiddeployqt.exe" --input D:/src/qt_src/build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug/android-libapp2.so-deployment-settings.json --output D:/src/qt_src/build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug/android-build --android-platform android-23 --jdk "C:/Program Files/Java/jdk1.8.0_202" --gradle Generating Android Package Input file: D:/src/qt_src/build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug/android-libapp2.so-deployment-settings.json Output directory: D:/src/qt_src/build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug/android-build/ Application binary: D:/src/qt_src/build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug/libapp2.so Android build platform: android-23 Install to device: No -- Skipping E:/App/Qt/5.12.4/android_armv7/plugins/iconengines/libqsvgicon.so. It has unmet dependencies: lib/libQt5Svg.so. -- Skipping E:/App/Qt/5.12.4/android_armv7/plugins/imageformats/libqsvg.so. It has unmet dependencies: lib/libQt5Svg.so. :checkDebugClasspath UP-TO-DATE :preBuild UP-TO-DATE :preDebugBuild UP-TO-DATE :compileDebugAidl FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileDebugAidl'. > java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process E:\Android\android-sdk-windows\build-tools\29.0.0\aidl.exe with arguments {-pE:\Android\android-sdk-windows\platforms\android-23\framework.aidl -oD:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build\build\generated\source\aidl\debug -IE:\App\Qt\5.12.4\android_armv7\src\android\java\src -ID:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build\src -ID:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build\src\debug\aidl -ID:\src\qt_src\build-app2-Android_for_armeabi_v7a_Clang_Qt_5_12_4_for_Android_ARMv7-Debug\android-build\aidl -dC:\Users\ADMINI~1\AppData\Local\Temp\aidl7196521705366926776.d E:\App\Qt\5.12.4\android_armv7\src\android\java\src\org\kde\necessitas\ministro\IMinistro.aidl} * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 6s 3 actionable tasks: 1 executed, 2 up-to-date Building the android package failed! -- For more information, run this command with --verbose. 20:35:57: 进程"E:\App\Qt\5.12.4\android_armv7\bin\androiddeployqt.exe"退出,退出代码 14 。 Error while building/deploying project app2 (kit: Android for armeabi-v7a (Clang Qt 5.12.4 for Android ARMv7)) When executing step "Build Android APK" 20:35:57: Elapsed time: 00:10.
请教大神帮忙解决一下eclipse里面android_NDK编译.c文件报错
"D:\\Android\\android-ndk-r9d\\ndk-build.cmd" all 系统找不到指定的文件。 [armeabi-v7a] Compile thumb : hello-jni <= hello-jni.c jni/hello-jni.c:31:1: fatal error: opening dependency file ./obj/local/armeabi-v7a/objs/hello-jni/hello-jni.o.d: No such file or directory compilation terminated. make.exe: *** [obj/local/armeabi-v7a/objs/hello-jni/hello-jni.o] Error 1 19:06:20 Build Finished (took 2s.346ms) 我实在是不知道为什么会报找不到文件,新手,刚接触NDK,求好心人解答,万分感激. 370361737,可以远程帮我. 这是android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY) 这application.mk: APP_ABI := all 把ndk改r8的就可以了,虽然有点小问题,但可以跑了,r10就不可以,这是什么问题呢?eclipse版本问题吗?还是哪里没设置对?我是一模一样的配的。 公司电脑还是xp的,家里装win7的 r8生成的.so文件在obj目录下,拖到lib就可以运行,正常,r10的任何目录都找不到.so文件
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案 去年我去爱卡汽车面试PHP,一轮和二轮面的都不错,在三轮面到Nginx的时候很多问题当时不知道怎么回答,确实没有深入学习过,花了一段时间的学习,终于能解答Nginx高性能优化的问题了,10月24号为了获得程序员勋章,发布了半个优化笔记,浏览到了1000+,受到这个鼓舞,我抽时间在仔细整理下关于Nginx性能优化的问题,我们从软件说起。...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
11月19日科技资讯|华为明日发布鸿蒙整体战略;京东宣告全面向技术转型;Kotlin 1.3.60 发布
「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点! 6G 专家组成员:速率是 5G 的 10 至 100 倍,预计 2030 年商用 雷军:很多人多次劝我放弃WPS,能坚持下来并不是纯粹的商业决定 ...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
化繁为简 - 腾讯计费高一致TDXA的实践之路
导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
@程序员,如何花式构建线程?
作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
在第2章节中,我们介绍了如何通过Spring Boot来实现HTTP接口,以及围绕HTTP接口相关的单元测试、文档生成等实用技能。但是,这些内容还不足以帮助我们构建一个动态应用的服务端程序。不论我们是要做App、小程序、还是传统的Web站点,对于用户的信息、相关业务的内容,通常都需要对其进行存储,而不是像第2章节中那样,把用户信息存储在内存中(重启就丢了!)。 对于信息的存储,现在已经有非常非常多...
基于Python的人脸自动戴口罩系统
目录 1、项目背景 2、页面设计 3、器官识别 4、退出系统 1、项目背景 2019年新型冠状病毒感染的肺炎疫情发生以来,牵动人心,举国哀痛,口罩、酒精、消毒液奇货可居。 抢不到口罩,怎么办?作为技术人今天分享如何使用Python实现自动戴口罩系统,来安慰自己,系统效果如下所示: 本系统的实现原理是借助 Dlib模块的Landmark人脸68个关键点检测库轻松识别出人脸五官
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问