各位大神,      我有一个交叉编译工具链,但是我每次使用的时候都得指定sysroot, 像这样:
    arm-poky-linux-gnueabi-gcc  -o test test.c --sysroot=/opt/cortexa7hf-neon-poky-linux-gnueabi
  
    我努力的想不用指定-sysroot ,于是我指定了 C_INCLUDE_PATH=/opt/cortexa7hf-neon-poky-linux-gnueabi,
    然后 我arm-poky-linux-gnueabi-gcc -v -E -  , /opt/cortexa7hf-neon-poky-linux-gnueabi确实被添到了search list 
   
   但是,并不能搜素/opt/cortexa7hf-neon-poky-linux-gnueabi下面的子目录?  请问该怎样解决这个问题?

解决方案 »

  1.   

    sysroot 和 INCLUDE_PATH 不是一个概念。 INCLUDE_PATH 需要指定 include 目录。
    sysroot 是指在这个目录按照 linux 的标准目录结构查找头文件目录和库文件目录 等。
      

  2.   

    如果工具链安装的位置和编译工具链时指定的安装位置是一致的,那么是不需要指定 sysroot 的。
      

  3.   

    意思到了,我说的更准确一点 --sysroot只在链接的时候起作用,在预编译(就是头文件展开,宏展开)
    的时候不起作用。-I是找头文件的,所以--sysroot不影响 -I。