首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    什么是.so文件_安卓so文件作用

    (1) 动态库的编译 这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。 命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so  参考2:都是由C或C++编译出来的  -shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件  -fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。  (2) 动态库的链接 这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test: 命令:$ gcc test.c -L. -ltest -o test 注:测试是否动态连接,如果列出libtest.so,那么应该是连接正常了  -L.:表示要连接的库在当前目录中  -ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称 命令:$ ldd test 注: 执行test,可以看到它是如何调用动态库中的函数的。

    03

    openssl怎么编译成动态库

    Windows下编译OpenSSL动态库的方法: 1、安装ActivePerl 初始化的时候,需要使用perl 2、使用VS下的Visual Studio 20xx Command Prompt进入控制台模式 3、解压缩openssl的包,通过cd命令切换到openssl的目录 4、执行:perl configure VC-WIN32 5、执行:ms/do_ms 6、选择不同的编译结果 1) 执行:nmake -f ms/ntdll.mak 该命令生成动态库,默认使用的是MD 2) 执行:nmake -f ms/nt.mak 该命令生成静态库,默认使用的是MT 3) 想生成使用静态链接运行时库的动态库则采用下面方法 复制一个ntdll.mak并命名为ntdll_mt.mak,修改里面的 “CFLAG= /MD /Ox ..............” 为/MT ,然后重新编译,执行 nmake -f ms/ntdll_mt.mak 4) 想生成使用动态链接运行时库的静态库则采用下面方法 复制一个nt.mak并命名为nt_md.mak,修改里面的 “CFLAG= /MT /Ox ..............” 为/MD ,然后重新编译 ,执行 nmake -f ms/nt_md.mak 7.其它命令: nmake -f ms/ntdll.mak clean // 清除编译的中间文件 nmake -f ms/ntdll.mak install // 安装 ,主要是linux下面会自动放到程序目录中 。

    03
    领券