代码之家  ›  专栏  ›  技术社区  ›  Some Name

/usr/include/linux和/usr/include/x86\u64-linux-gnu有什么区别/

  •  1
  • Some Name  · 技术社区  · 6 年前

    我对原生C编程非常陌生,现在我正尝试配置IDE以正确设置include路径。因为我想通过 sys/xxx.h 我添加的文件

    /usr/include/x86_64-linux-gnu/
    

    /usr/include/linux 似乎也包含相同的标题。那么它们之间有什么区别呢?我应该用哪一个呢?

    1 回复  |  直到 6 年前
        1
  •  6
  •   zwol    6 年前

    我可以马上告诉你 /usr/include/linux /usr/include/asm 不应包含在系统头目录列表中。这些目录中的头将用作 #include <linux/whatever.h> #include <asm/whatever.h> ,而不是 #include <whatever.h> .

    LC_ALL=C gcc -v -xc -E /dev/null 2>&1 | 
        sed -ne '/search starts here/,/End of search list/p'
    

    您将得到如下输出,但细节可能略有不同:

    #include "..." search starts here:
    #include <...> search starts here:
     /usr/lib/gcc/x86_64-linux-gnu/8/include
     /usr/local/include
     /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed
     /usr/include/x86_64-linux-gnu
     /usr/include
    End of search list.
    

    列出的目录是您应该配置IDE以在其中查找系统头的目录,以便查找声明等等。但是,你应该 -I 秩序 以上目录中的任何一个)。