導航:首頁 > 源碼編譯 > openssl動態庫編譯生成so

openssl動態庫編譯生成so

發布時間:2022-10-17 14:19:30

㈠ 在unix上安裝完openssl後庫文件 只有a 沒有so,例如libssl.a,怎麼產生出libssl.so文件

./config -d shared
config時添加生成動態庫的參數,INSTALL文件里有描述,你可以細看一下。
希望對你有幫助。

linux編譯openssl後的.so文件被放在哪個目錄下邊了具體是哪個目錄啊

不進行make install安裝的話,就在你openssl的源碼目錄里,當然你config的時候需要指明shared,否則只有.a的,沒有.so的。
如果config的時候,指定了prefix,那麼就到你指定的目錄去找,下面應該有個lib目錄。
如果你的linux自帶openssl的話,系統的lib目錄下就有。libcrypto和libssl

android studio如何通過jni調用openssl生成的.so動態鏈接庫

(1)老版本,方法如下:
task NativeLibs(type: Copy) {
from(new File(project(':MyProject').buildDir, 'native-libs')) { include '**/*.so' }
into new File(buildDir, 'native-libs')
}

tasks.withType(Compile) { compileTask -> compileTask.dependsOn NativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.PackageApplicationTask) { pkgTask ->
pkgTask.jniDir new File(buildDir, 'native-libs')
}

(2)新版本三種方法:
(2.1)打包前先生成.Jar文件後自動解包到apk文件

task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') {
destinationDir file("$buildDir/native-libs")
baseName 'native-libs'
extension 'jar'
from fileTree(dir: 'libs', include: '**/*.so')
into 'lib/'
}

tasks.withType(Compile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}

下面一句話就是打包生成目錄(build\native-libs)中的.jar文件

compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

(2.2)手動生成.Jar文件後自動解包到apk文件

這個方式需要自己手動進行.SO文件壓縮,具體步驟為:將所有需要使用的.so文件壓縮為.zip文件(zip中的文件目錄結構為: lib/armeabi/*.so)然後把zip文件後綴改為.Jar然後放到libs生成apk就ok

默認就是自動打包所有.Jar文件:

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}

(2.3)這也就是現在正在使用的方式(推薦) ,其實無非就是把.SO文件打包到APK的lib文件夾中,假如仔細閱讀了Gradle的使用方法,自然就知道其實Gradle官方在新版已經自動實現了打包.SO文件的.很簡單級就是在配置的android節點下加入下面的內容就ok:

sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}

其他地方無需修改,整個項目的配置文件如下:

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}

㈣ win10怎麼運行openssl

1、安裝Perl(我安裝在C盤,同時我的openssl也解壓在C盤)
使用命令行工具,進入C:\Perl64\eg路徑下, 執行「perl example.pl」,若顯示「Hello from ActivePerl!」,則說明Perl安裝成功。
2、設置環境變數
打開我的電腦->屬性->高級系統設置->環境變數,找到Path系統變數,點擊編輯,添加E:\VS 2013\VC\bin;C:\Perl64\bin;c:\windows\system32,其中E:\VS 2013\VC\bin是我的VS2013的安裝路徑,根據情況自己修改。C:\Perl64\bin是Perl的安裝路徑,根據情況自己修改。
3、用管理員身份打開Visual Studio的開發人員命令提示,並進入openssl的目錄(我的放在C盤根目錄)
4、執行Configure命令(配置編譯參數)
5、運行ms\do_ms命令
6、運行nmake -f ms\ntdll.mak命令進行編譯生成OpenSSL動態庫
此時會編譯大概兩分鍾左右,耐心等待。
7、測試
使用命令nmake -f ms\ntdll.mak test,若成功,會出現結果:
8、可能使用的命令
測試OpenSSL動態庫:nmake -f ms\ntdll.mak test
測試OpenSSL靜態庫:nmake -f ms\nt.mak test
安裝OpenSSL動態庫:nmake -f ms\ntdll.mak install
安裝OpenSSL靜態庫:nmake -f ms\nt.mak install
清除上次OpenSSL動態庫的編譯,以便重新編譯:nmake -f ms\ntdll.mak clean
清除上次OpenSSL靜態庫的編譯,以便重新編譯:nmake -f ms\nt.mak clean
9、總結(使用方法)
當建立工程需要使用到openssl庫時,在包含目錄中添加openssl安裝目錄的include目錄, 在庫目錄中添加out32dll目錄。
或者將OpenSSL下的include文件夾、lib文件、dll文件拷出,使用的時候包含進去就行了。

㈤ 在MACOX上的ANDROIDSTUDIO如何編譯OPENSSL原生的C庫成動態的.SO庫

目前暫不支持開發工具編譯C、c++代碼生成so文件,應該後續版本會有的。
.so 為共享庫,是shared object,用於動態連接的,和dll差不多,可以這樣調用so文件:
調用 System.out.println(System.getProperty("java.library.path"));
得到/usr/java/jdk1.5.0_13/jre/lib/i386,將SO文件放在該目錄下
運行java程序,輸出了由C語言函數計算出的結果

㈥ 新手:Linux下使用第三方C庫(openssl),是調用.so文件還是直接調用.h文件

不管什麼庫文件,你都既要在包含.h文件(不然編譯通不過:有未聲明的函數),也要在gcc選項裡面指定.so文件的位置(不然鏈接通不過:未知的符號)
比如
gcc -I include_path -L lib_path -lyourlib
include_path改成你頭文件的目錄
lib_path改成你動態庫文件的目錄
-lyourlib 改成l加上你要引用的庫文件名字
比如libpthread.so就改成-lpthread

python調用動態庫(並且動態庫依賴其它動態庫)

請問解決了嗎?求幫助,四天了還沒解決,要被開除了
我的已解決,不知道你情況一不一樣,我是python調用一個.c文件,文件裡面調用了openssl庫的代碼,剛開始一直調用不到openssl庫的代碼,即使include沒有報錯。
後來把那個.c文件也鏈接到openssl庫的相應.so文件,也就是ldd那個.c文件生成的.so文件的時候,能夠看到,依賴了openssl庫相應的.so文件,我在linux下需要通過ldconfig 「目錄」來設備依賴庫的目錄(目錄是openssl庫相應的.so文件所在目錄(一般是.../lib))

㈧ linux怎麼編譯得到so文件

不進行make install安裝的話,就在你openssl的源碼目錄里,當然你config的時候需要指明shared,否則只有.a的,沒有.so的。如果config的時候,指定了prefix,那麼就到你指定的目錄去找,下面應該有個lib目錄。如果你的linux自帶openssl的話,系統的lib目錄下就有。libcrypto和libssl

閱讀全文

與openssl動態庫編譯生成so相關的資料

熱點內容
安卓微信如何設置文字加長 瀏覽:764
中科編譯科技公司高新技術企業 瀏覽:770
win7文件夾選項功能 瀏覽:90
微信文件夾為什麼會被鎖定 瀏覽:994
加密系列號 瀏覽:458
電冰箱換壓縮機要注意什麼 瀏覽:795
平板的訪客模式如何加密 瀏覽:139
釘釘加密有用嗎 瀏覽:112
加密u盤好還是不加密的 瀏覽:349
微觀經濟學平狄克第八版pdf 瀏覽:404
linux查看實時流量 瀏覽:557
如何存檔到伺服器 瀏覽:548
flash編程書籍推薦 瀏覽:836
php獲得數組鍵值 瀏覽:402
香港雲伺服器操作 瀏覽:303
wpe最新源碼 瀏覽:857
自己購買雲主伺服器推薦 瀏覽:422
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:192
pdf劈開合並 瀏覽:29