Ⅰ 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目錄下。