win10下ndk编译arm可执行体

编译参考文章

http://blog.csdn.net/john_1984/article/details/12622215

一、编写soLoader主文件

soLoader.c内容:

#include <stdio.h>
typedef int (*MAIN_FN)(int,char**);
int main(int argc,char* argv[]){
    printf("hello so!\n");
    int ret = dlopen("/data/local/xxx.so");
    if (ret==0)
    {
        printf("file not found!\n");
    }
    void* pfn = dlsym(ret,"main");
    if (pfn==NULL)
    {
        printf("method \"main\" not found!\n");
    }
    ((MAIN_FN)pfn)(argc,argv);
    printf("result: %x\n",ret);

}

二、编译o文件

E:\Documents\Android\sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin>arm-linux-androideabi-gcc.exe --sysroot=E:\Documents\Android\sdk\ndk-bundle\platforms\android-19\arch-arm -o E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader.o -c E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader.c

三、链接o文件为elf文件

E:\Documents\Android\sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin>arm-linux-androideabi-gcc.exe --sysroot=E:\Documents\Android\sdk\ndk-bundle\platforms\android-19\arch-arm -o E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader.o

 或者直接编译链接(二,三命令合并):

E:\Documents\Android\sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin>arm-linux-androideabi-gcc.exe --sysroot=E:\Documents\Android\sdk\ndk-bundle\platforms\android-19\arch-arm -o E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader E:\VMShare\Work\Andriod\antidebug\soLoader\jni\soLoader.c

四、push到手机,执行

//pc端命令E:\VMShare\Work\Andriod\antidebug\soLoader\jni>adb push soLoader /data/local/tmp//adb shell
[email protected]:/data/local/tmp # chmod 775 soLoader
[email protected]:/data/local/tmp # ./soLoader
hello so!
file not found!
method "main" not found!
[1] + Stopped (signal)     ./soLoader
[email protected]:/data/local/tmp # ls
时间: 2024-08-05 14:56:26

win10下ndk编译arm可执行体的相关文章

Linux下NDK编译FFMPEG包含neon参数

FFMPEG编译成Android库已经有很多案例了,编译优化neon的也很多,以下是我通过实践成功的案例,这里主要讲编译的配置文件,其他设置可结合Linux下使用NDK编译FFMPEG(libstagefright)进行配置. config_android.sh NDK=/opt/android/android-ndk-r9 PLATFORM=$NDK/platforms/android-14/arch-arm/ PREBUILT=$NDK/toolchains/arm-linux-androi

Win10下vs2015编译OSGEarth2.10

一.OSG编译 1. 源码或预编译库下载 OSG版本3.6.3:CMake版本3.12.1-x64:Geos版本:3.7.1:GDAL版本:2.3.1:数据包由官网下载:官网上还提供其他vs2015环境下OSG编译依赖的第三方库所用的CMake编译脚本,其地址为https://github.com/bjornblissing/osg-3rdparty-cmake同时该页面提供由AppVeyor所预编译好的vs2015和vs2017的库文件下载. 2. 文件目录 D:\OSG\OpenSceneG

win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)

最近新写的程序要做beta测试,在做绿色版(免安装版)时遇到了问题,vs2015做的项目本以为像之前的vs版本一样把msvcrXXX.dll还有另外几个运行时库都放到exe旁边即可,然并卵...,在win7的测试机上还会提示找不到这个dll:api-ms-win-crt-runtime-l1-1-0.dll,如下图 继续找到这个dll拷到exe旁,坑爹的一幕放生了,竟然提示那个dll有问题——无法定位程序输入点ucrtbase.terminate... 难道是版本不对,我机器上是有几个不同大小的

win10下cmake 编译tensorflow1.11.0

硬件环境: win10 + GPU 1060 6G 软件环境:cmake 3.14.2 + swigwin-3.0.12 + Anaconda 3.5 + pycharm 2017.2.3 + vs2015 ----开始---(参考url: https://blog.csdn.net/yz2zcx/article/details/83106669) 1 git tensorflow r1.11.0 源码 2 打开cmake 3.14.2, 选择源码路径和编译路径,点击Configure 3 会出

Eclipse下NDK编译错误之No rule to make target

错误表现: make.exe: *** No rule to make target `/cygdrive/f/Games2014/ThumbelinaCell/projects/ThumbelinaCell/proj.android/../../../extensions/AssetsManager/AssetsManager.cpp', needed by `obj/local/armeabi/objs/cocos_extension_static/AssetsManager/AssetsM

win10下clodeblocks编译C语言乱码

打开settings->compile,在other compiler options添加下面两行代码: -fexec-charset=GBK-finput-charset=UTF-8

arm 及ndk编译

首页  »   Android android的armeabi跟armeabi-v7a 网友分享于:2014-03-16  浏览:867次 android的armeabi和armeabi-v7a 在ANE中如果SDK调用了so库,则需要把so库放到ANE下Android-ARM/lib/armeabi (调试模式)或者 armeabi-v7a(发行模式)下. 可以贴个ADT代码说明问题: //m_configType.equals("apk") 是否是发行模式 //(hasCaptiv

ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用

作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: Ubuntu12.04 TLS android-ndk-r9d-linux-x86_64.tar.bz2 ffmpeg2.2 --------------------

QT5.7.0在win10下使用visual studio 2015编译(目标平台 xp)

环境:win10+vs2015+QT5.7.0 目标:编译出能在windows xp上运行的QT 通过baidu和bing找不出来的结果没有一个能成功运行,大部分都能编译成功,并完美解决“exe不是有效的win32程序”,但是程序依旧没法正常显示窗口. 此时会有一个crash,具体位置是qwindows.dll,但是使用depends查看也没看出来qwindows.dll有问题,有些人会遇到qwindows.dll依赖的 kernel32.dll在xp下没有对应接口,具体接口不记得了,最后看到是