我正在尝试安装芯片厂使用 cshrc 的远程系统上的工具链。我通过 ssh 连接到它。
所有必需的依赖项均已安装在系统上。我用rpm -q
命令检查了它们。所以我跳过安装它们。
我也完成了设置阶段(即 ./scripts/init-submodules-no-riscv-tools.sh 成功 - 在 env.sh 文件上生成了预期的输出)
我的问题是在构建工具链时出现错误:
我还记录了完整的构建过程及其这里。
我的问题是我是否需要再次安装依赖项(或更新它们)以消除错误?如果是这样,你能指导我怎么做吗,因为我不是 sudo。
我问了管理员,但他们回答说管理员只负责高级的东西。
我对linux不太有经验。任何指导将不胜感激。
编辑
Installing toolchain to /local/data0/AS/chipyard/riscv-tools-install
=> Starting riscv-gnu-toolchain build
==> Initializing riscv-gnu-toolchain submodule
==> Removing existing riscv-gnu-toolchain/build directory
==> Configuring riscv-gnu-toolchain
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for grep that handles long lines and -e... /bin/grep
checking for fgrep... /bin/grep -F
checking for grep that handles long lines and -e... (cached) /bin/grep
checking for bash... /bin/sh
checking for __gmpz_init in -lgmp... yes
checking for mpfr_init in -lmpfr... yes
checking for mpc_init2 in -lmpc... yes
checking for curl... /bin/curl
checking for wget... /bin/wget
checking for ftp... /bin/ftp
configure: creating ./config.status
config.status: creating Makefile
config.status: creating scripts/wrapper/awk/awk
config.status: creating scripts/wrapper/sed/sed
==> Building riscv-gnu-toolchain
mkdir -p /local/data0/AS/chipyard/riscv-tools-install/.test || \
(echo "Sorry, you don't have permission to write to" \
"'/local/data0/AS/chipyard/riscv-tools-install', use --prefix to specify" \
"another path, or use 'sudo make' if you *REALLY* want to" \
"install into '/local/data0/AS/chipyard/riscv-tools-install'" && exit 1)
rm -rf stamps/build-gdb-newlib build-gdb-newlib
mkdir build-gdb-newlib
rm -r /local/data0/AS/chipyard/riscv-tools-install/.test
cd build-gdb-newlib && CC_FOR_TARGET=riscv64-unknown-elf-gcc /local/data0/AS/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/../riscv-gdb/configure \
--target=riscv64-unknown-elf \
\
--prefix=/local/data0/AS/chipyard/riscv-tools-install \
\
--disable-werror \
--with-expat=yes \
--enable-gdb \
--disable-gas \
--disable-binutils \
--disable-ld \
--disable-gold \
--disable-gprof
mkdir -p stamps/ && touch stamps/check-write-permission
我在“chipyard/toolchains/riscv-tools/riscv-gnu-toolchain”中运行了 ./configure 命令。我传递了当前路径和路径“local/data0/AS/chipyard/riscv-tools-install”并为每个路径构建了工具链,但仍然遇到相同的权限错误。你能告诉我我哪里做错了吗?
-虽然生成的 config.log 文件中有一些错误消息:configure:2185: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files 我不知道这是否重要,尽管
答案1
mkdir -p /local/data0/AS/chipyard/riscv-tools-install/.test ||
(echo "抱歉,您没有权限写入"
"'/local/data0/AS/chipyard/riscv-tools-install',使用 --prefix 指定"
"另一个路径,或者使用 'sudo make'如果你真的想要“
”安装到 '/local/data0/AS/chipyard/riscv-tools-install'" && 退出 1)
你不被允许写入 /local....它甚至给你一个如何规避它的提示(通过使用sudo make
或使用--prefix
标志)
但我不认为 /local 目录存在...这会导致相同的消息。因此,您可以使用键“--prefix”,它将现有路径作为参数:
./configure --prefix /path/to/the/location/that/exists..
您可能会考虑在构建代码之前熟悉“make”。