gcc的 sysroot

DriveMyself 2017-03-13 04:32:26
各位大神,

我有一个交叉编译工具链,但是我每次使用的时候都得指定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下面的子目录? 请问该怎样解决这个问题?
...全文
1366 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxpcccc 2018-06-27
  • 打赏
  • 举报
回复
引用 3 楼 zssazrael 的回复:
sysroot 和 INCLUDE_PATH 不是一个概念。 INCLUDE_PATH 需要指定 include 目录。
sysroot 是指在这个目录按照 linux 的标准目录结构查找头文件目录和库文件目录 等。



意思到了,我说的更准确一点 --sysroot只在链接的时候起作用,在预编译(就是头文件展开,宏展开)
的时候不起作用。-I是找头文件的,所以--sysroot不影响 -I。
yi19861209 2017-03-20
  • 打赏
  • 举报
回复
yi19861209 2017-03-18
  • 打赏
  • 举报
回复
幽饮烛 2017-03-14
  • 打赏
  • 举报
回复
如果工具链安装的位置和编译工具链时指定的安装位置是一致的,那么是不需要指定 sysroot 的。
幽饮烛 2017-03-14
  • 打赏
  • 举报
回复
sysroot 和 INCLUDE_PATH 不是一个概念。 INCLUDE_PATH 需要指定 include 目录。 sysroot 是指在这个目录按照 linux 的标准目录结构查找头文件目录和库文件目录 等。
yi19861209 2017-03-14
  • 打赏
  • 举报
回复
DriveMyself 2017-03-14
  • 打赏
  • 举报
回复
引用 1 楼 renwotao2009 的回复:
编译时和添加环境变量的用户是相同吗?
是的,是同一个用户。按理说,应该会自动搜索子目录吧?
renwotao2009 2017-03-14
  • 打赏
  • 举报
回复
编译时和添加环境变量的用户是相同吗?

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧