导航:首页 > 源码编译 > 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相关的资料

热点内容
android数据库下载 浏览:744
中午服务器崩溃怎么办 浏览:423
产品经理和程序员待遇 浏览:439
解忧程序员免费阅读 浏览:107
录像免压缩 浏览:504
总结所学过的简便算法 浏览:360
南昌哪些地方需要程序员 浏览:759
三台服务器配置IP地址 浏览:173
如何用命令方块连续对话 浏览:278
win7linux共享文件夹 浏览:304
命令符打开本地服务 浏览:599
android应用程序源码 浏览:703
安卓开发工程师简历怎么写 浏览:61
热水器水量服务器是什么意思 浏览:117
stk卫星编译 浏览:480
对后台程序员的要求 浏览:761
ios大文件夹图标 浏览:626
生的计划pdf 浏览:715
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227