gcc调试中使用静态连接库和动态链接库以及-I -l L含义

本文介绍了GCC在Linux环境下如何使用静态链接库和动态链接库,包括-I用于指定头文件路径,-L用于指定链接库搜索目录,-l用于链接库文件。静态库的代码在编译时被直接包含在可执行文件中,而动态库在运行时载入内存,使得程序体积更小。动态链接库的加载路径包括LD_LIBRARY_PATH环境变量、/etc/ld.so.conf配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)静态链接库与动态链接库都是共享代码的方式,

区别:

       如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。

       静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。

注意:在window下的动态链接:后缀为dll;而linux下多为.so



2)在gcc中添加静态/动态链接库,并且编译


I(大写的i) 是 Include 头文件路径
L 是 link 目录
l (小写的L)是链接文件 ,在L指定的位置找


libtest/include/hello.h

#ifdef _HELLO_H_

#define _HELLO_H_

void hello();

#endif


libtest/lib/hello.c

#include"hello.h"

#include <stdio.h>

void hello()

{

         printf("hello world!\n");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值