GCC(Linux)中的-I标志

10
我找到了一个带有 Makefile 的源文件捆绑包,浏览了一遍,在 CFLAG 变量中,有一个标志 -I。我在网上搜索过,但无法找到它的实际作用。它是否与 C 文件中包含的库文件相关?(stdio.h, unistd.h, pthread.h) 请指向一个来源或简要解释一下,标志 -I 是什么意思?

它指示编译器将标志-I的参数添加到包含文件搜索路径中。在Unix / Linux世界中,当需要了解有关gcc命令行标志的信息时,通常从“man gcc”开始。Google不是正确的工具。 - bobah
1个回答

9

gcc的手册页中就有(在unix/linux上使用man gcc或者你可以通过谷歌找到):

-I dir

将目录dir添加到搜索头文件的目录列表中。以-I命名的目录会在标准系统包含目录之前被搜索。如果目录dir是标准系统包含目录,则该选项将被忽略,以确保不破坏系统目录的默认搜索顺序和系统头文件的特殊处理方式。如果dir以"="开头,则"="将被替换为sysroot前缀;请参见--sysroot-isysroot

(确切的文本和语义可能在不同版本的gcc之间有所不同)

另外还有在线的gcc文档:http://gcc.gnu.org/onlinedocs/ 例如,版本4.8.2的选项可以在这里找到:http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Directory-Options.html#Directory-Options


谢谢,我明白了。你能告诉我如何使用“man”来搜索有关标志的信息吗?我的意思是,我尝试过“man -I”、“man I”,但没有帮助。 - Fawzan
1
@Fawzan,输入man gcc,会打开一个长长的手册,在里面列出了所有选项。除了gcc,你也可以在大多数其他命令中使用这个方法。 - user3072164
很酷,我用过那个。是的,我得到了一个很长的页面。也许我们可以使用grep或其他工具在man页面中搜索。 :) - Fawzan
1
在 man 中搜索时,输入 / 加上正则表达式并按回车键即可。按 n 键可以跳转到下一个搜索项,在您的情况下应该是 "/-l"。 - Roman A. Taycher
通常,man 使用 less 来显示 man 手册,因此您可以通过 man less 学习如何在其中导航和搜索 ;D。RomanATaycher 的评论解释了如何进行搜索。 - user3072164

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接