1

我们目前正在为运行完整 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/libor$rootfs/usr/local/lib中,而是库在$rootfs/usr/lib/aarch64-linux-gnu我已经测试过并且使用 -I/-L 命令我可以编译项目。

我的问题如下

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

0 回答 0