如何在Eclipse中如何用cygwin把C文件编译成so文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Eclipse中如何用cygwin把C文件编译成so文件相关的知识,希望对你有一定的参考价值。

用cygwin把C文件编译成so文件:

1:首先,要准备好一个jni文件夹,里面包含三个文件:

makefile文件:

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=test-jni
LOCAL_SRC_FILES := test-jni.c
include $(BUILD_SHARED_LIBRARY)

如果有多个文件,可能有所不同吧,尚未尝试。


头文件:最好使用javah命令来生成,可见我的上一篇文章;

源文件:根据头文件,完善源码。


2:将jni文件夹拷贝到android项目目录下

3:运行cygwin,使用CD命令,切换目录到Android项目目录

4:输入命令 $NDK/ndk-build,屏幕显示如下:

$ $NDK/ndk-build
Cygwin         : Generating dependency file converter script
Compile thumb  : test-jni <= test-jni.c
SharedLibrary  : libtest-jni.so
Install        : libtest-jni.so => libs/armeabi/libtest-jni.so

表示生成成功。

参考技术A 。。。你编译成.so有何用 拿到linux那里依然是不能用的 得重新编译追问

我现在需要在Android应用中用JNI调用C,需要.so文件的

追答

。。。你听说过 交叉编译 和 工具链 么,下载那一整套的工具用gcc加个把参数编译即可 eclipse装了CDT默认就有好多编译环境的支持,不过那些编译器你得自行安装编译环境 eclipse只是做适配

http://blog.sina.com.cn/s/blog_4a0a39c30100crhl.html

追问

我现在安装的有cygwin 和 CDT,但不知道怎么在Eclipse中编译C和C++文件

追答

孩子 看下那个链接好么 人家说的挺详细的
项目的properties里面设置 自己试下 so easy

Keil中如何用Keil中如何用汇编调用C函数?

如图所示,我在汇编中用IMPORT声明,调用C函数,但是编译提示错误,请问是什么原因?

检查C文件是否加入项目。
检查C文件中是否有这两个函数的原型声明。
参考技术A 关注这个问题

以上是关于如何在Eclipse中如何用cygwin把C文件编译成so文件的主要内容,如果未能解决你的问题,请参考以下文章

Keil中如何用Keil中如何用汇编调用C函数?

eclipse中如何用快捷键查找java类库中的源码

在Java中如何用import引入自己建的类

在ubuntu系统中如何用GCC编译运行一个C程序?

在ubuntu系统中如何用GCC编译运行一个C程序?

在C语言中如何用把二维数组中的一行贼给一维数组?