質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

2227閲覧

コンパイルが出来ない

aaaa____

総合スコア29

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2021/09/30 02:51

編集2021/10/09 12:40
:SimPipeV/SimRISCV/test$ ls ex1.c hello.c mem_qemu.txt null hello mem_mieru.txt mem_test.txt null.c

testディレクトリの中身は上のようになっています.これは,hello.cをコンパイルしたものをすでにもらってあります.
この状態で次のようなディレクトリではhelloを実行できます

:/SimPipeV$ ./simprv SimRISCV/test/hello * Pipeline Configuration * Forwarding: Yes DataCache Disabled Hello, World. #################### ## cycle count: 2298 ## inst count: 1768 ## IPC: 0.769365

しかし,コンパイルを行おうとして,testディレクトリに移動した後にコンパイルを次のように行うとコマンドがないと言われてしまいます.

:/SimPipeV/SimRISCV/test$ riscv32-unknown-elf-gcc –static hello.c –o hello riscv32-unknown-elf-gcc: command not found

なぜコマンドがないと言われてしまうのか教えたいただきたいです.
パスが通っていないのが原因のようで,バッシュに記述することでパスを通したいのですが,描き方が分からないので教えていただきたいです.
https://qiita.com/ozipi/items/29d7ae0b21e476dd7b8e
このサイトにはbash_profileと書いてるのですが,現状ホームディレクトリ直下にあるのはbash_historyとbash_logoutとbashrcでどれを使うのか分からないです
bashとついていない.profileはありました.内容派次のようになっています

# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コンパイラ riscv32-unknown-elf-gcc がインストールされていないか、パスが通っていないかでしょう。
質問者は、ソースコードと、それをコンパイルしたものを受領したとのことですが、RISCコンパイラはインストールしていないのでは?

投稿2021/09/30 03:08

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaa____

2021/09/30 06:40

調べてみたところ,パスが通っていないみたいで,バッシュというところに直書きすることでパスを通したというのを見かけたのですが,どのように書けばいいのか分からないというのが現状です. 書き方を存じ上げていたりしますでしょうか
itagagaki

2021/09/30 06:52 編集

まずそのパス、たとえばここでは仮に /usr/local/risc/bin/riscv32-unknown-elf-gcc とすると、シェル上で直接 /usr/local/risc/bin/riscv32-unknown-elf-gcc --version でgccが起動してバージョン番号がコンソールに表示されるのを確認します。 それで間違いないなら、あとはホームディレクトリの .bashrc ファイルの末尾に export PATH=/usr/local/risc/bin:$PATH と書いてシェルを起動し直す(あるいは一旦ログアウトしてログインしなおす)
aaaa____

2021/10/09 12:38 編集

export PATH/carchRV/bin:$PATH のように.bashrcの末尾に記述して, ``` export PATH=$PATH:/usr/local/texlive/2020/bin/x86_64-linux export MANPATH=$MANPATH:/usr/local/texlive/2020/texmf-dist/doc/man export INFOPATH=$INFOPATH:/usr/local/texlive/2020/texmf-dist/doc/info export PATH=/carchRV/bin:$PATH ``` のようにした後,Ubuntuを閉じて再度実行してみたのですが,同じように SimPipeV/SimRISCV/test$ riscv32-unknown-elf-gcc –static hello.c –o hello riscv32-unknown-elf-gcc: command not found となってしまいました.何かほかに直すところなどありますでしょうか.
itagagaki

2021/09/30 07:17

シェルで file -L /usr/work/B3/second/archB/carchRV/bin/riscv32-unknown-elf-gcc を実行して、どう表示されるか教えてください。
aaaa____

2021/10/09 12:39 編集

:carchRV/bin$ file -L riscv32-unknown-elf-gcc riscv32-unknown-elf-gcc: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=da1b03c1522a0d198f8995c4606cab57db2fb58a, with debug_info, not stripped このようになりました
itagagaki

2021/09/30 07:34

/usr/work/B3/second/archB/carchRV/bin/riscv32-unknown-elf-gcc --version は実行できましたか?
aaaa____

2021/10/09 12:38 編集

:~/carchRV/bin$ ./riscv32-unknown-elf-gcc --version riscv32-unknown-elf-gcc (GCC) 11.1.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. このように表示されたので問題ないと思い,bashrcに記述しました
itagagaki

2021/09/30 07:42

あれ? ~ は /usr ですか? つまりそのカレントディレクトリは本当に /usr/work/B3/second/archB/carchRV/bin ですか?
aaaa____

2021/10/09 12:41 編集

追加する前から記述してあったパスが同じようになっていそうなので勝手に"~"がusrだと思っていたのですが,もしかしてちがうことがあるのでしょうか
itagagaki

2021/09/30 07:55 編集

ちょっとそこで pwd を実行してみてください。
aaaa____

2021/10/09 12:41 編集

このようになりました
itagagaki

2021/09/30 08:04

それなら export PATH=/home/tmr/work/B3/second/archB/carchRV/bin:$PATH ですね。 ユーザーのホームディレクトリ下にインストールしたんですか…
aaaa____

2021/10/09 12:42 編集

了解です
itagagaki

2021/09/30 08:22

-static というオプション引数をコンパイラが理解せず、-staticという名前のファイルの指定だと思ってエラーになっているようですね。 これ以上は残念なが私にはわかりません。 そのコンパイラの正しい使い方を知っている人を探して聞いてください。 下記のページは参考になるかもしれません。 RISCVエミュレータ-ELFファイルの実行 - Moiz's journal https://uzusayuu.hatenadiary.jp/entry/2020/01/02/020312
aaaa____

2021/09/30 08:26

なるほど,ここまでたくさん教えたくださりありがとうございました サイトの方も参考にさせていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問