当前位置:首页 » 编程软件 » 编译生成so

编译生成so

发布时间: 2022-12-24 21:43:41

❶ 怎样把.c文件编译成.so文件

.so是linux用的
所以 要生成so 需要用gcc
和生成可执行文件类似,只是增加一些编译选项
命令如下
gcc SOURCE_FILES -fPIC -shared -o TARGET
SOURCE_FILES可以是.c文件,也可以是经过-c编译出来的.o文件
TARGET为so文件。

❷ linux中把.c的文件编译成.so

首先
gcc
-c
-fPIC
libst.c
生成
libst.o
然后
gcc
-shared
-fPIC
-o
libst.so
libst.o
生成
libst.so
动态链接库
把libst.so拷贝到系统默认库目录下,比如
/lib,
/usr/lib

假定你有
test.c
要引用这个库
gcc
-lst
-o
test
test.c
然后就可以了
假如不能把libst.so拷贝到默认库目录下,比方说放在了
/home/aaa/lib

那么就用这样的语句来编译test.c
gcc
-L/home/aaa/lib
-lst
-Wl,-rpath=/home/aaa/lib
-o
test
test.c

❸ 如何把java工程 编译成.SO文件

1,写一个java文件,声明一个native 方法,例如public native void test(); 2,把它编译成class文件 3,使用javah 这个class来生成cpp的头文件 4,实现头文件里面那些函数 4,用ndk编译生成动态库 其中1,想生成几个就写几个native方法。

❹ 如何在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

表示生成成功。

❺ 怎样把.c文件编译成.so文件

比如有一个test.c文件,我想打包成动态库test.so,
直接gcc
test.c
-o
test.o
-fpic
gcc
-o
test.so
test.o
-shared
使用的时候发布.so和头文件即可。
链接的时候要记得丢在默认目录或者将其所在目录声明到环境变量,不然有时候会提示找不到这个库文件。

❻ 多个.c文件能编译成单个.so文件吗

可以的
一般是把多个.c文件 先分别编译成.o文件
然后再把.o文件打包成.so
也可以直接编译打包,一步完成。
命令如下
gcc SOURCE_FILES -fPIC -shared -o TARGET
SOURCE_FILES可以是.c文件,也可以是经过-c编译出来的.o文件
TARGET为so文件。
比如
gcc a.c b.c c.c d.c -fPIC -shared -o libabcd.so

❼ 怎么编译生成指定模块的so库文件

android NDK编译多个so文件

android编译系统的makefile文件Android.mk写法如下

(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下

Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:

LOCAL_PATH:=$(call my-dir)

上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。

(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始

❽ ndk编译生成so

本文讲述使用Android 的ndk-build来编译生成so库,在命令行中编译。编译后的so库可以调用。
环境问题略过,请自行网络或谷歌安装ndk。

新建文件夹/cn/scnu
并在文件夹中创建java 文件:

该命令会编译java文件并在build目录下生成,然后我们打开build目录

然后我们使用javah命令:

然后会生成一个.h头文件,我们打开这个头文件看看:

可以看到这里面只有一个函数,这个函数返回一个整形,和前面的java头文件对应。
接下来我们另外创建一个Test文件夹,在Test文件夹下创建jni目录,然后将刚才生成的头文件拷贝进来。

然后我们创建JNITest.c文件,文件内容如图:

这个文件的主要内容就是调用头文件并实现头文件中的方法,我们返回了1024。

LOCAL_MODULE 就是我们要生成的so,LOCAL_SRC_FILES就是编译的文件

这里就表示我们要生成的so库的CPU架构。

使用命令行进入到Test目录下,即jni的根目录处,然后打命令:

结果如图,然后我们就可以在libs目录下发现生成的so库了。

热点内容
ftp命令批量下载文件 发布:2025-07-18 11:58:45 浏览:743
nba2k17文件夹 发布:2025-07-18 11:48:53 浏览:871
朔源码是什么 发布:2025-07-18 11:44:33 浏览:774
迷你世界解压剧场 发布:2025-07-18 11:43:48 浏览:154
linux安装opencv 发布:2025-07-18 11:42:10 浏览:446
编程游戏的软件有哪些 发布:2025-07-18 11:41:34 浏览:956
c程序设计语言电子书 发布:2025-07-18 11:35:58 浏览:642
lightning耳机如何在安卓手机上用 发布:2025-07-18 11:21:47 浏览:176
妄想山海新宿怎么配置好 发布:2025-07-18 11:07:43 浏览:616
androidsaxxml解析xml 发布:2025-07-18 10:57:58 浏览:387