linux连接库参数-l,Llinux下动态链接库及静态链接库的实用和生成

1. 库简介

库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so,libhello.a。

为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0。由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。

ln -s libhello.so.1.0 libhello.so.1

ln -s libhello.so.1 libhello.so

2. 使用库

当要使用静态的程序库时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功,静态程序库也就不再需要了。然 而,对动态库而言,就不是这样。动态库会在执行程序内留下一个标记‘指明当程序执行时,首先必须载入这个库。由于动态库节省空间,Linux下进行连接的 缺省操作是首先连接动态库,也就是说,如果同时存在静态和动态库,不特别指定的话,将与动态库相连接。

现在假设有一个叫hello的程序开发包,它提供一个静态库libhello.a,一个动态库libhello.so,一个头文件hello.h。头文件中提供sayhello()这个函数。

/* hello.h */

void sayhello();

另外还有一些说明文档。这是一个典型的程序开发包结构。

2.1 与动态库连接

Linux默认的就是与动态库连接,下面这段程序testlib.c使用hello库中的sayhello()函数。

/*testlib.c*/

#includ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下,您可以通过Oracle命令来添加表空间容量。下面是一些常用的步骤: 1. 首先,使用root用户登录到Linux系统。 2. 打开终端,并使用oracle用户登录到Oracle数据。 3. 运行以下命令以连接到数据: ``` sqlplus / as sysdba ``` 4. 输入密码以登录到数据。 5. 确保您具有适当的权限来执行以下操作。 6. 使用以下命令创建一个新的表空间: ``` CREATE TABLESPACE tablespace_name DATAFILE '/path/to/datafile.dbf' SIZE size_in_bytes AUTOEXTEND ON NEXT next_size_in_bytes MAXSIZE max_size_in_bytes; ``` 其中: - `tablespace_name` 是您希望创建的表空间的名称。 - `/path/to/datafile.dbf` 是数据文件的路径和名称。 - `size_in_bytes` 是初始表空间大小。 - `next_size_in_bytes` 是自动扩展时的增量大小。 - `max_size_in_bytes` 是表空间的最大大小。 7. 如果需要更多数据文件来增加表空间容量,可以使用以下命令添加数据文件: ``` ALTER TABLESPACE tablespace_name ADD DATAFILE '/path/to/additional_datafile.dbf' SIZE size_in_bytes; ``` 其中: - `tablespace_name` 是要添加数据文件的表空间的名称。 - `/path/to/additional_datafile.dbf` 是要添加的额外数据文件的路径和名称。 - `size_in_bytes` 是额外数据文件的大小。 8. 完成后,您可以使用以下命令退出SQL*Plus: ``` EXIT; ``` 请根据您的具体需求和环境修改上述命令中的参数和选项。确保在执行任何操作之前备份数据,并以谨慎的态度对待对数据的更改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值