使用rootfs进行GCC交叉编译

时间:2018-12-10 07:37:10

标签: c linux gcc nvidia-jetson

我们目前正在为运行完整Linux操作系统(NVIDIA Jetson TX2)的ARM嵌入式系统开发应用程序。我有一个来自嵌入式系统的rootfs副本以及ARM版本8.2-2018.08的GNU工具链。 我很难让GCC编译器(gcc-arm-8.2-2018.11-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc)为包含文件和库文件在rootfs的正确目录中查找。

我已将—sysroot变量设置为指向我的sysroot的位置。但是,在lib和include目录中查找一个子文件夹usr/lib/aarch64-linux-gnu,其中包含更多的include和库,而实际上这些正是所需的。例如,不是将库放在$rootfs/usr/lib$rootfs/usr/local/lib中,而是将库放在我测试过的$rootfs/usr/lib/aarch64-linux-gnu中,并使用-I / -L命令可以获取项目o编译。

我的问题如下

  • 使用-I和-L是执行此操作的“正确”方法吗?如果没有,那是什么?
  • 为什么linux将这些库放在另一个目录中?
  • 使用--sysroot进行编译时,我可以看到正在检查其他非sysroot目录。为什么gcc会这样做?

0 个答案:

没有答案