Linux操作系统的头文件和库文件搜索路径

本文详细介绍了Linux系统中头文件的搜索路径,包括:源文件当前目录、-I指定目录、编译器环境变量以及预设路径。同时,讨论了库文件的搜索路径,如-L指定路径、-rpath-link和-rpath选项,并涉及交叉编译的情况。此外,还提到了运行时动态库的搜索路径,如LD_PRELOAD、LD_LIBRARY_PATH、/etc/ld.so.cache等。

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

一、 头文件

1 “”中的头文件,在源文件当前目录查找

2 -I 中指定目录 -I可以在CFLAG中指定

3 gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH

4 编译器预设路径、内定目录:

/usr/include

/usr/local/include

/usr/lib/gcc-lib/i386-linux/2.95.2/include

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include

但是假如装gcc的时候,有给定的prefix的话,那么就是

/usr/include

prefix/include

prefix/xxx-xxx-xxx-gnulibc/include

prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include

此外还可用pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。 Linux下那么多库,在./configure时时怎么判断它们存不存在的,难道是靠递归搜索?pkg-config这个命令和/*/lib/pkgconfig下的一些.pc文件才是主角。每个.pc文件定义了库的名字、路径、编译选项等,比如glib-2.0.pc文件:

prefix=/usr

exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/include

glib_genmarshal=glib-ge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值