gpt4 book ai didi

linux - "No such file or directory"在链接路径中

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:21 25 4
gpt4 key购买 nike

编译时,我总是将构建放在一个单独的目录中。例如:

mkdir build
cd ./build
(cd ..; ./bootstrap)
../configure
make

因为我有足够的 RAM,所以我的目标是在 TMPFS 上编译。

脚本获取项目的名称,将其用作在 $XDG_RUNTIME_DIR/build 中创建的目录的名称,最后链接它。

# setup-build.sh

#!/usr/bin/bash
set -e

my_project_name=$(basename $(pwd))
my_project_build_dir="$XDG_RUNTIME_DIR/build/$my_project_name"
mkdir -p $my_project_build_dir
ln -s "$my_project_build_dir" "$(pwd)/build"

脚本运行没有问题。但是,当我执行 cd ./build; 时../configure 它返回一个错误:bash: ../configure: No such file or directory。该文件肯定存在,但 Bash 找不到它!

最佳答案

我将脚本修改为:

#!/usr/bin/bash
set -e

my_project_src_dir="$(pwd)"
my_project_name="$(basename $(pwd))"
my_project_build_dir="$XDG_RUNTIME_DIR/build/$my_project_name"
mkdir -p "$my_project_build_dir"
ln -s "$my_project_build_dir" "$(pwd)/build"
cd "$my_project_build_dir"
echo "$my_project_src_dir" > "./project-src-dir.txt"

要编译我必须输入cd ./build; $(cat ./project-src-dir.txt)/配置;制作。不过,这会导致 Bash 完全中断或部分中断。正如我无法使用此方法从 $my_project_src_dir 中 TAB 完整文件名一样,但参数的 TAB 完成工作正常。如果需要autoconf:(cd $(cat ./project-src-dir.txt); ./bootstrap)。如果有人有任何其他想法,我仍然希望能够只执行 ../configure,尽管现在必须这样做。

编辑:必须将 my_project_name="$(basename '$my_project_src_dir') 更改为 my_project_name="$(basename $(pwd))" 因为它从字面上理解了 '$my_project_src_dir'

关于linux - "No such file or directory"在链接路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57225105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com