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

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

新規登録して質問してみよう
ただいま回答率
85.50%
GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

GNU Assembler

GNU Assemblerは、GNUプロジェクトで使用されるアセンブラです。GASの名称で知られています。GNUコンパイラコレクションのデフォルトのバックエンドであり、GNUオペレーティングシステムやLinuxのコンパイルにも使用されます。

Q&A

解決済

1回答

495閲覧

riscv64-gnu-as -gccでのコンパイラ、Makefileがうまく動きません。

Yoshioka19082

総合スコア4

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

GNU Assembler

GNU Assemblerは、GNUプロジェクトで使用されるアセンブラです。GASの名称で知られています。GNUコンパイラコレクションのデフォルトのバックエンドであり、GNUオペレーティングシステムやLinuxのコンパイルにも使用されます。

0グッド

0クリップ

投稿2022/12/31 09:46

編集2022/12/31 19:15

CプログラムとアセンブリファイルとscriptをコンパイルするMakefileを実行したいです。以下のリンクのMakefileのパスを設定してコマンドを入力したら以下のようにエラーが出ます。どうすればいいでしょうか?環境はUbuntu64 bitです。Github

Terminal

1#/opt/riscv/bin/riscv64-unknown-linux-gnu-gcc 2#/opt/riscv32/bin/riscv32-unknown-linux-gnu-gcc 3$make 4make init 5make[1]: Entering directory 6'/home/ubuntu2/ridecore/src/test/ridecore/app/fib' 7/opt/riscv/bin/riscv64-unknown-linux-gnu-as -m32 ./startup.S -o ./startup.o 8/opt/riscv/bin/riscv64-unknown-linux-gnu-as: unrecognized option '-m32' make[1]: *** 9[Makefile:42: startup.o] Error 1 10make[1]: Leaving directory 11'/home/ubuntu2/ridecore/src/test/ridecore/app/fib' make: *** [Makefile:32: all] Error 2

Makefile

1TARGET = init 2OBJS = startup.o main.o 3 4CMDPREF = /opt/riscv/bin/ 5MIPSCC = $(CMDPREF)riscv64-unknown-linux-gnu-gcc 6MIPSAS = $(CMDPREF)riscv64-unknown-linux-gnu-as 7MIPSLD = $(CMDPREF)riscv64-unknown-linux-gnu-ld 8OBJDUMP = $(CMDPREF)riscv64-unknown-linux-gnu-objdump 9MEMGEN = memgen 10 11CFLAGS = -m32 -O2 12AFLAGS = -m32 13LFLAGS = -static -melf32lriscv 14 15.SUFFIXES: 16.SUFFIXES: .o .c .S 17###################################################################### 18all: 19 $(MAKE) $(TARGET) 20 $(MAKE) image 21 22$(TARGET): $(OBJS) 23 $(MIPSLD) $(LFLAGS) -T stdld.script $(OBJS) -o $(TARGET) 24 25.c.o: 26 $(MIPSCC) $(CFLAGS) -c $(@D)/$(<F) -o $(@D)/$(@F) 27 28.S.o: 29 $(MIPSAS) $(AFLAGS) $(@D)/$(<F) -o $(@D)/$(@F) 30 31image: 32 $(MEMGEN) -b $(TARGET) 8 > $(TARGET).bin 33 34dump: 35 $(OBJDUMP) -S $(TARGET) 36 37read: 38 readelf -a $(TARGET) 39 40copy: 41 cp init.bin ../../bin 42 43clean: 44 rm -f *.o *~ log.txt $(TARGET) $(TARGET).bin

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

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

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

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

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

guest

回答1

0

ベストアンサー

/opt/riscv/bin/riscv64-unknown-linux-gnu-as: unrecognized option '-m32'

riscv64-unknown-linux-gnu-asには、-m32というオプションはない!とおっしゃってますよ

投稿2022/12/31 10:15

y_waiwai

総合スコア87719

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問