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

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

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

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

コンパイル

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

コンパイルエラー

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

Q&A

解決済

1回答

1709閲覧

「 makefile入門者」makefile を使うとコンパイルエラーになる原因が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

makefile

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

コンパイル

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

コンパイルエラー

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

0グッド

0クリップ

投稿2021/09/11 07:45

編集2021/09/11 07:54

###知りたいこと
提示コードコードのmakefileの何が悪いのか知りたい。

###質問内容
提示コードですが単純なソースコードのコンパイルは通るのでソースコードのコンパイルエラーのわけはないのですが makefileを間違えたということなのですがどこが間違えたのか知りたいです。

単純なコンパイル

shigurechan@shigurechan-System-Product-Name:~/program/AAEditor/source$ g++ *.cpp shigurechan@shigurechan-System-Product-Name:~/program/AAEditor/source$

makefile

1CC =g++ 2PRG =AAEditor#実行ファイル 3OBJ =Main.o Scene.o Edit.o#オブジェクトファイル 4SRC =source/Main.cpp source/Scene.cpp source/Edit.cpp#ソースファイル 5 6$(PRG): $(SRC) 7 $(CC) $(OBJ) -lncurses -o $(PRG) 8 9Edit.o: source/Edit.cpp 10 $(CC) -c $^ 11 12Scene.o: source/Scene.cpp 13 $(CC) -c $^ 14 15Main.o: source/Main.cpp 16 $(CC) -c $^ 17

Error

1$ make 2g++ Main.o Scene.o Edit.o -lncurses -o AAEditor 3/usr/bin/ld: Edit.o: in function `Edit::Edit()': 4Edit.cpp:(.text+0x64): undefined reference to `Scene::~Scene()' 5/usr/bin/ld: Edit.o: in function `Edit::~Edit()': 6Edit.cpp:(.text+0xe8): undefined reference to `Scene::~Scene()' 7collect2: error: ld returned 1 exit status 8make: *** [makefile:8: AAEditor] エラー 1 9

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

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

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

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

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

maisumakun

2021/09/11 07:51 編集

えっと、表示されたエラーの詳細を、最初に質問する時点で頑なに提示しない理由は何でしょうか?
退会済みユーザー

退会済みユーザー

2021/09/11 07:54

失礼しました。追記しました。
guest

回答1

0

ベストアンサー

インデントが空白になっていますね。Makefileのインデントはタブで行います。

あと、おそらく
$(PRG): $(SRC)
は、
$(PRG): $(OBJ)
の間違いでしょうね。

投稿2021/09/11 08:00

otn

総合スコア85901

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問