Ⅰ c/c++代码上的.c文件如何转换成.so文件,供java使用
编译C/C++代码生成.so文件:
$ gcc test.c -fPIC -shared -o test.so
Ⅱ so文件、a文件区别与转化
so文件是动态库文件,.a 是返缓大有漏竖一系列 .o 文件通过 ar 程序打包在一起的静态库,要把哪桥它转成动态库只需先解开,生成一堆 .o 文件,再通过编译器(比如 gcc 或 ifort,视具体情况而定)编成动态库即可。
ar -x libtest.a
gcc -shared *.o -o libtest.so
Ⅲ windows平台下的.dll库 转换为 Linux下的.so库
不可能直接转换,除非你有dll库的源代码 ,在逻辑结构基础上移植到linux下 再重新编译才行
Ⅳ android如何调用第三方给的.h文件和.so库文件啊
将SO文件直接放到libs/armeabi下,然后代码中System.loadLibrary("xxx");再publicnativestaticintxxx_xxx_xxx();接下来就可以直接调用xxx_xxx_xxx()方法;
2.第二种方案,创建自己的SO文件,在自己的SO文件里调用第三方SO,再在程序中调用自己的SO,这种比较复杂,需要建java类文件,生成.h文件,编写C源文件include之前生成的.h文件并实现相应方法,最后用androidNDK开发包中的ndk-build脚本生成对应的.so共享库;求解:
网上说的第二种方案,是自己引用so库,最后声称JAR
------解决方案--------------------------------------------------------
首先要看这个SO是不是JNI规范的SO,比如有没有返回JNI不直接支持的类型。也就是说这个SO是不是可以直接当作JNI来调用。如果答案是否定的,你只能选第二个方案。
如果答案是肯定的,还要看你是不是希望这个SO的库直接暴露给JAVA层,如果答案是否定的,你只能选第二个方案,比如你本身也是一个库的提供者。
一般如果你只有SO,就说明这个是别人提供给你的,你可以要求对方给你提供配套的JAVA调用文件。
1、这个要看这个SO是不是符合JNI调用的规范。还要看你自己的意愿。
2、因为第二种方法最灵活,各种情况都可以实现。3、可以------解决方案--------------------------------------------------------
看能不能直接从JAVA调用的最简单的方法就是看SO里的函数名是不是Java_XXX_XXX_XXX格式的
是就可以,你可以自己写一个配套的JAVA文件,注意一下SO函数名和JAVA函数名的转换规则,或者向SO提供方索要;
不是的话就选第二种方案吧。By;黎约天罚BEY
Ⅳ 怎么用c4droid将cpp转成so
1、首先在cpp1下生旅余成so文件,新建cpp2文件夹。
2、其次将cpp1的main.cpp,h文件和libCPP1.so拷贝进来。
3、最后生成可执行文件main,打咐敬印一衡镇慎下,发现结果一样,说明cpp转成so文件成功。
Ⅵ so文件可使用记事本进行编辑修改内容吗
可以。so文件可使用记事本进行编辑修改内容,将文件转为记事本格式,就可以在其中更改最后转回去就可以。记事本,在日常生活中指的是用来记录各类事情的小册子。
Ⅶ 机器专家怎么转换为somachine文件
打开somachine软件,选择转换。
1、保存需要转换段游的somachinebasic项目。
2、打开somachine软件斗兄。
3、在文件菜单握销销下选择转换somachinebasic项目。
Ⅷ 如何将lib文件转换成so文件
你纤埋困试下用解压软件打开,把软件直接拖进去。有些软件直接拖进去开毁念机液森运行不了(像输入法),需要提取软件的lib下的.so文件(同样用解压软件打开提取)放到ROM的system/lib目录下。