gcc 编译和makefiel编写时指定头文件和库文件的参数 -I -L -l

本文介绍了在使用GCC编译时如何通过-I参数指定头文件目录,-L参数指定库文件路径,以及-l参数链接库。还讨论了静态链接与动态链接的差异,包括-Wl,-Bstatic和-Wl,-Bdynamic的用法,以及头文件搜索顺序和动态库的搜索路径。此外,提到了环境变量LD_LIBRARY_PATH在运行时指定动态库搜索路径的作用。" 8935683,1359933,iOS App后台保持Socket连接技术,"['iOS开发', '网络编程', '后台运行', 'socket']
摘要由CSDN通过智能技术生成

 

比如:

gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld


上面这句表示在编译hello.c时-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,
   寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
   -L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,
   寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
       -lworld表示在上面的lib的路径中寻找库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)

但注意:-static显得有些’暴力’,因为他会把命令行中-static后面的所有-l指明的库都静态链接。

而一般的是采用如-Wl,-Bstatic告诉链接器使用-Bstatic选项,该选项是告诉链接器,对接下来的-l选项使用静态链接;

-Wl,-Bdynamic就是告诉链接器对接下来的-l选项使用动态链接



#include <>直接到 指定的某些目录中去找某些头文件。 注意-I 属于该类型
#include “”先到源文件所在文件夹去找,然后再到系统指定的某些目录中去找某些头文件。
       “”中可以用类似“../inc/bluetooth/hci.h”:包含源文件上层目录中Inc下Bluetooth中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值