从以下链接:http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
如果标准系统包含目录或使用-isystem指定的目录,也使用-I指定,则将忽略-I选项.该目录仍将被搜索,但作为系统目录在系统中的正常位置包括链.
这是怎么回事?
[14:45:37 Wed Apr 27] ~/junkPrograms/src $gcc hello.c -isystem -I ../include/
../include/: file not recognized: Is a directory
collect2: ld returned 1 exit status
[14:45:42 Wed Apr 27] ~/junkPrograms/src $gcc hello.c -I isystem ../include/
../include/: file not recognized: Is a directory
collect2: ld returned 1 exit status
[14:45:57 Wed Apr 27] ~/junkPrograms/src $
Run Code Online (Sandbox Code Playgroud)
这是否意味着如果附加-isystem,dir将被赋予正常系统目录的优先级?
unw*_*ind 25
该文件说:
-isystem目录
在-I指定但在标准系统目录之前的所有目录之后搜索dir以查找头文件.将其标记为系统目录,以便获得与应用于标准系统目录相同的特殊处理.如果dir以=开头,那么=将被sysroot前缀替换; 看--sysroot和-isysroot.
所以你错了.您需要为-isystem选项本身指定一个目录,它不像您似乎正在尝试的-I选项的"修饰符"那样工作.
我相信你的命令应该是:
$ gcc -isystem ../include hello.c
Run Code Online (Sandbox Code Playgroud)
系统标题得到警告的特殊处理(因为它们是只读的,有些不能用严格符合的代码编写)
| 归档时间: |
|
| 查看次数: |
26119 次 |
| 最近记录: |