C核心技术手册(四十)

18.3.3.3 动态链接和共享object文件

  共享库为特殊的object文件,它们可以在运行时被连接到程序中来,使用共享链接库具有许多优点:执行文件较小;共享模块允许更新;高效。

创建一个共享object文件,可使用GCC-shared选项目,输入必须是一个存在的object文件。下面是一个简单的例子:

$ gcc -c circulararea.c

$ gcc -shared -o libcirculararea.so circulararea.o

上面第二条命令创建了共享object文件libcirculararea.so,将一个可执行程序与共享object文件连接,在命令和中像使用其他object文件或库文件一样对它进行命名。

$ gcc -c circle.c

$ gcc -o circle circle.o libcirculararea.so –lm

此命令创建了一个可执行程序,它可以在运行时动态地与libcirculararea.so连接,当然,你必须确保程序在运行时能够找到共享库,这可以通过将你的库文件安装在标准的目录下,如/usr/lib,或设置一个适当的环境变量,如LD_LIBRARY_PATH,配置动态库加载的机制因系统不同而有差异。

如果共享库在你的系统上可用,但你应该避免其对潜在的恶意代码开放,例如,可以使用-static选项调用GCC:

$ gcc -static -o circle circle.o circulararea.o –lm

但这样,生成的结果程序将比较大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值