不同路径存在相同的头文件,头文件搜索也有自己的规则。库文件同样有类似搜索路径问题。
GCC头文件
GCC编译C代码,根据是""或<>方式不同,头文件路径搜索顺序有差异。
- ""
- 被编译的源代码文件所在当前目录
- -iquote指定的路径(只用于引号括起来头文件,如多个路径,从左到右依次搜索)
- -I指定的路径(如多个路径,从左到右依次搜索)
- -isystem指定的路径(如多个路径,从左到右依次搜索)
- 标准系统头文件路径
- -idirafter指定的路径(如多个路径,从左到右依次搜索)
- <>
- -I指定的路径(如多个路径,从左到右依次搜索)
- -isystem指定的路径(如多个路径,从左到右依次搜索)
- 标准系统头文件路径
- -idirafter指定的路径(如多个路径,从左到右依次搜索)
有兴趣的可以写多个不同路径的相同名称头文件,用""或<>测试上面的顺序,可以一一验证。比较有趣的是,即使是系统头文件
MSVC头文件
- ""
- 源代码所在目录
- /I 指定的路径
- 标准系统头文件路径
- <>
- /I 指定的路径
- 标准系统头文件路径
GCC库文件
库文件不像头文件那样有这么多分类:
- -L参数
- LIBRARY_PATH或LD_LIBRARY_PATH
- /etc/ld.so.conf路径
- 系统默认的库路径(如/lib, /usr/lib等)。
若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。