【问题标题】:trouble to run make for the buildroot为 buildroot 运行 make 的麻烦
【发布时间】:2020-07-12 21:25:54
【问题描述】:

我不确定问题出在哪里。
命令是:

root@root:/usr/lib/buildroot# make

错误信息是:

llvm 9.0.1 构建 PATH="/usr/lib/buildroot/output/host/bin:/usr/lib/buildroot/output/host/sbin:/usr/local/sbin:/usr/local/bin :/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" /usr/bin/make -j3 -C /usr/lib/buildroot/output/build/ llvm-9.0.1//buildroot-build make[1]: 进入目录'/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' make[2]: 进入目录'/usr/ lib/buildroot/output/build/llvm-9.0.1/buildroot-build'make[3]:进入目录'/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build'make[3 ]: 进入目录'/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' make[3]: 进入目录'/usr/lib/buildroot/output/build/llvm-9.0.1 /buildroot-build' make[3]: 离开目录'/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' make[3]: 离开目录'/usr/lib/buildroot/output /build/llvm-9.0.1/buildroot-build' make[3]: 离开目录'/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' make[3]: 进入di教区长 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' make[3]: 进入目录 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot- build' [ 0%] 构建 CXX 对象 lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o make[3]: 进入目录 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot -build' [ 0%] 构建 CXX 对象 lib/Demangle/CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o aarch64-none-linux-gnu-g++:错误:交叉编译中使用的不安全的头文件/库路径:'- I/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build/lib/TableGen' lib/TableGen/CMakeFiles/LLVMTableGen.dir/build.make:62:目标'lib/TableGen/的配方CMakeFiles/LLVMTableGen.dir/Error.cpp.o' 失败 make[3]: *** [lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o] 错误 1 ​​make[3]: 离开目录 '/usr /lib/buildroot/output/build/llvm-9.0.1/buildroot-build' CMakeFiles/Makefile2:879:目标'lib/TableGen/CMakeFiles/LLVMTableGen.dir/all'的配方失败make [2]:*** [lib/TableGen/CM akeFiles/LLVMTableGen.dir/all] 错误 2 make[2]: *** Waiting for unfinished jobs.... [0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AArch64TargetParser.cpp.o [0 %] 构建 CXX 对象 lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o aarch64-none-linux-gnu-g++: 错误: 交叉编译中使用的不安全的头文件/库路径: '-I/usr/lib /buildroot/output/build/llvm-9.0.1/buildroot-build/lib/Demangle' lib/Demangle/CMakeFiles/LLVMDemangle.dir/build.make:62:目标'lib/Demangle/CMakeFiles/LLVMDemangle.dir 的配方/Demangle.cpp.o' 失败 make[3]: *** [lib/Demangle/CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o] 错误 1 ​​make[3]: *** 等待未完成的工作... .aarch64-none-linux-gnu-g++:错误:交叉编译中使用的头文件/库路径不安全:'-I/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build/lib/支持'lib/Support/CMakeFiles/LLVMSupport.dir/build.make:62:目标'lib/Support/CMakeFiles/LLVMSupport.dir/AArch64TargetParser.cpp.o'的配方失败d make[3]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/AArch64TargetParser.cpp.o] 错误 1 ​​make[3]: *** Waiting for unfinished jobs.... aarch64-none-linux- gnu-g++:错误:交叉编译中使用的不安全的头文件/库路径:'-I/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build/lib/Demangle'lib/Demangle/CMakeFiles /LLVMDemangle.dir/build.make:75:目标“lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o”的配方失败 make[3]:*** [lib/Demangle/CMakeFiles/LLVMDemangle.dir /ItaniumDemangle.cpp.o] 错误 1 ​​make[3]: 离开目录 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' CMakeFiles/Makefile2:640: recipe for target 'lib/ Demangle/CMakeFiles/LLVMDemangle.dir/all' 失败 make[2]: *** [lib/Demangle/CMakeFiles/LLVMDemangle.dir/all] 错误 2 [0%] 构建 CXX 对象 lib/Support/CMakeFiles/LLVMSupport.dir /ARMTargetParser.cpp.o aarch64-none-linux-gnu-g++:错误:交叉编译中使用的头文件/库路径不安全:'-I/usr/lib/buildroot/output/build/llv m-9.0.1/buildroot-build/lib/Support' lib/Support/CMakeFiles/LLVMSupport.dir/build.make:75:目标'lib/Support/CMakeFiles/LLVMSupport.dir/ARMTargetParser.cpp.o'的配方make[3] 失败:*** [lib/Support/CMakeFiles/LLVMSupport.dir/ARMTargetParser.cpp.o] 错误 1 ​​make[3]:离开目录 '/usr/lib/buildroot/output/build/llvm-9.0 .1/buildroot-build' CMakeFiles/Makefile2:800: 目标 'lib/Support/CMakeFiles/LLVMSupport.dir/all' 的配方失败 make[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all ] 错误 2 make[2]: 离开目录 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' Makefile:151: 目标 'all' 的配方失败 make[1]: ** * [all] 错误 2 make[1]: 离开目录 '/usr/lib/buildroot/output/build/llvm-9.0.1/buildroot-build' package/pkg-generic.mk:266: recipe for target '/ usr/lib/buildroot/output/build/llvm-9.0.1/.stamp_built' 失败 make: *** [/usr/lib/buildroot/output/build/llvm-9.0.1/.stamp_built] 错误 2

【问题讨论】:

  • 使错误信息更具可读性。修正错字(哇)。建议包括问题如何发生的场景或背景。简要描述您正在构建的项目并发布 make 文件。

标签: c++ buildroot


【解决方案1】:

您已将主机系统库路径添加到您的构建中(可能是错误的?因为您没有发布我们不知道的必要信息)。宿主库路径是跨工具链或 buildroot 路径之外的路径。

这个用于检测不安全包含路径的功能已在几年前包含在 buildroot 中。见:https://git.busybox.net/buildroot/commit/?id=5aa205eba4063ddf17a2e11420eea2a8aa7536a5

要么你需要从你的构建中删除主机系统包含路径(你总是应该这样做)。但是,如果您确定一切正常,您可以将 BR_COMPILER_PARANOID_UNSAFE_PATH 定义为一个空值,这样它就只是一个警告,而不是一个错误。

【讨论】:

    【解决方案2】:

    您不能在 /usr/lib 下构建 Buildroot。将目录移动到其他地方,例如/home/buildroot。请注意,移动后您必须进行干净的构建。

    还请注意,您不应该以 root 身份进行构建。创建一个非 root 用户并以该用户身份进行构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 2011-03-26
      相关资源
      最近更新 更多