GNU RISC-V Make 尝试访问刚刚创建的目录中的文件

GNU RISC-V Make 尝试访问刚刚创建的目录中的文件

我正在尝试运行 xv6-riscv。我使用的是 Ubuntu 22.04.2 LTS,所以我需要构建 gnu-riscv-toolchain。以下这些按照说明,我运行了sudo make。最终,make 产生了以下输出:

rm -rf stamps/build-newlib build-newlib
mkdir build-newlib
cd build-newlib && /mnt/c/Users/vrait/Documents/Code/OperatingSystems/riscv-gnu-toolchain/newlib/configure \
        --target=riscv64-unknown-elf \
         \
        --prefix=/usr/local \
        --enable-newlib-io-long-double \
        --enable-newlib-io-long-long \
        --enable-newlib-io-c99-formats \
        --enable-newlib-register-fini \
        CFLAGS_FOR_TARGET="-O2 -D_POSIX_MODE -ffunction-sections -fdata-sections    -mcmodel=medlow" \
        CXXFLAGS_FOR_TARGET="-O2 -D_POSIX_MODE -ffunction-sections -fdata-sections    -mcmodel=medlow"
/bin/sh: 1: /mnt/c/Users/vrait/Documents/Code/OperatingSystems/riscv-gnu-toolchain/newlib/configure: not found
make: *** [Makefile:622: stamps/build-newlib] Error 127

第 622 行是产生错误的 Makefile 行:

rm -rf $@ $(notdir $@)
mkdir $(notdir $@)
cd $(notdir $@) && $</configure \
    # some args

我对 CMake 没什么经验,但我的理解是,此代码会删除notdir,创建一个新notdir目录,移至该目录,然后尝试/configure使用一些参数运行。我不明白这是如何工作的:您正尝试访问刚创建的空目录中的文件。那里怎么可能有文件供您访问?

更改/configure/../configure允许我绕过这个错误(在 gnu-riscv-toolchain 的根目录中有一个配置文件,我认为这会导致程序访问它),但是 Make 在输出以下内容后突然停转(没有错误消息,它只是停止产生输出):

cd build-binutils-newlib && CC_FOR_TARGET=riscv64-unknown-elf-gcc /mnt/c/Users/vrait/Documents/Code/OperatingSystems/riscv-gnu-toolchain/newlib/../binutils/configure \
    # some args

我认为这是因 更改为 而导致/configure/../configure

rm, mkdir, cd,序列如何才能/configure正常工作而不总是尝试访问不存在的文件?此外,修复not found错误的正确方法是什么?

相关内容