當前位置:首頁 » 編程軟體 » 編譯成so

編譯成so

發布時間: 2023-05-17 21:18:11

⑴ 怎樣把.c文件編譯成.so文件

比如有一個test.c文件,我想打包成動態庫test.so,
直接gcc
test.c
-o
test.o
-fpic
gcc
-o
test.so
test.o
-shared
使用的時候發布.so和頭文件即可。
鏈接的時候要記得丟在默認目錄或者將其所在目錄聲明到環境變數,不然有時候會提示找不到這個庫文件。

⑵ android開發,怎麼使用ndk編譯成.so文件

一、首先下載android-ndk,官方網站是:http://developer.android.com/tools/sdk/ndk/index.html
目前最新的版本是android-ndk-r8e-windows-x86.zip,下載地址:
http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86.zip
下載後把壓縮解壓出來,例如:D:\ndk,目錄下的ndk-build.cmd就是用來編譯的批處理命令。
二、編譯,打開cmd命令行窗口,cd進入目錄:D:\ndk\samples\hello-jni,
然後執行命令:D:\ndk\ndk-build.cmd(如果設置過環境變數則直接使用ndk-build.cmd)來編譯hello-jni,如果沒有錯誤會輸出:
Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
"Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
三、創建android應用程序並使用so文件
打開eclipse創建一個android應用程序HelloJni,默認的com.example.hellojni包下面有一個MainActivity.java
在此包下添加一個HelloJni.java,

⑶ 怎麼編譯生成指定模塊的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)開始

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

表示生成成功。

⑸ 如何把JAVA工程 編譯成.SO文件

1,寫一個java文件,聲明一個native 方法,例如public native void test(); 2,把它編譯成class文件 3,使用javah 這個class來生成cpp的頭文件 4,實現頭文件裡面那些函數 4,用ndk編譯生成動態庫 其中1,想生成幾個就寫幾個native方法。

⑹ 怎樣把.c文件編譯成.so文件

.so是linux用的
所以 要生成so 需要用gcc
和生成可執行文件類似,只是增加一些編譯選項
命令如下
gcc SOURCE_FILES -fPIC -shared -o TARGET
SOURCE_FILES可以是.c文件,也可以是經過-c編譯出來的.o文件
TARGET為so文件。

⑺ 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庫了。

python文件編譯成so介紹

將其拷貝到python系統路徑 /usr/lib/python2.7/site-packages/test
在test目錄散凱譽下創建 init .py 與 test.py 文件

上面使用 gcc 將 py 編譯成孫蘆 so,下面直接使用沖段 python 自帶的setup.py 來編譯 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

熱點內容
2008編程入門經典 發布:2025-07-15 18:58:44 瀏覽:602
艾派密碼是什麼 發布:2025-07-15 18:47:40 瀏覽:587
密碼鎖如何在裡面開門 發布:2025-07-15 18:35:00 瀏覽:520
額溫演算法 發布:2025-07-15 18:18:14 瀏覽:727
ie客戶端事件腳本執行異常 發布:2025-07-15 18:10:13 瀏覽:24
自製壓縮兔糧 發布:2025-07-15 18:09:25 瀏覽:11
腳本病毒的危害 發布:2025-07-15 18:04:00 瀏覽:259
簡單的解壓 發布:2025-07-15 17:42:25 瀏覽:148
lol最強腳本 發布:2025-07-15 17:41:45 瀏覽:290
安卓手機測量工具在哪裡 發布:2025-07-15 17:41:39 瀏覽:241