[解決済み】makefile "そのようなファイルやディレクトリはありません"
2022-02-05 05:03:09
質問
C++のプログラムをmakeでコンパイルしようとしています。多くのチュートリアルを読んだ後、以下のようなmakeファイルにたどり着きました。
srcディレクトリからソースファイルを読み込み、buildディレクトリにオブジェクトを配置し、binディレクトリにexeを配置しています。
以下のmakefileを実行してみると、次のようなエラーが発生します。
CC := g++
CFLAGS := -g -O2
BIN_DIR := /bin
BUILD_DIR := /build
SRC_DIR := /src
TARGET := wavfiletool.exe
SOURCES := $(wildcard $(SRC_DIR)/*.c)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(BUILD_DIR)/%.o)
$(BIN_DIR)/$(TARGET): $(OBJECTS)
$(CC) $@ $(CFLAGS) $(OBJECTS)
$(OBJECTS): $(BUILD_DIR)/%.o : $(SRC_DIR)/%.c
@$(CC) $(CFLAGS) -c $< -o $@
++ /bin/wavfiletool.exe -g -O2 g++: エラーです。/bin/wavfiletool.exe: そのようなファイルやディレクトリはありません g++: fatal error: no input files compilation が終了しました。*** [/bin/wavfiletool.exe] エラー 1 [0.1sで終了 終了コード2]
UPDATEです。
makefileを編集しました。一つ前のバージョンでは、.cppとc++を使用しているのに、.cを使用しているというtypoがありました。今は違うエラーが出ています。
makefileの更新
CC := g++
CFLAGS := -g -O2
BIN_DIR := bin
BUILD_DIR := build
SRC_DIR := src
TARGET := wavfiletool.exe
SOURCES := $(wildcard $(SRC_DIR)/*.cpp)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(BUILD_DIR)/%.o)
$(BIN_DIR)/$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) $(CFLAGS) -o $@
$(OBJECTS): $(BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp
@$(CC) $(CFLAGS) -c $< -o $@
新しいエラー
makefile:13: target `src/WavFile.cpp' doesn't match the target pattern
makefile:13: target `src/WavFileTool.cpp' doesn't match the target pattern
g++ src/WavFile.cpp src/WavFileTool.cpp -g -O2 -o bin/wavfiletool.exe
解決方法は?
すべてのディレクトリ(すなわち、BIN_DIR、SRC_DIR)がルートディレクトリ(/)になければ、それがエラーになる理由です。最初のスラッシュを削除するか、環境変数のプレフィックスとして
SRC_DIR = $(MY_PROJECT_BASE_DIRECTORY)/src
.
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】Makefileの中の.PHONYの目的は何ですか?
-
[解決済み] GNU make で "commands commence before first target" エラーが発生する。
-
undefinedmakefile *** セパレータがありません。
-
[解決済み] makeファイルの@!の意味は?
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み】makefileに'cd'コマンドを記述するには?
-
[解決済み】makefileでターゲットのリストを取得する方法とは?
-
[解決済み] CLionでCMakeの代わりにローカルのmakefileを使用する
-
[解決済み] GNU MakeのCPPFLAGSとCXXFLAGSの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】makefile "そのようなファイルやディレクトリはありません"
-
[解決済み】「make」と「make all」の違いとは?
-
[解決済み] CygwinでのMakefile
-
[解決済み] 「複数のターゲットパターン」Makefile のエラー
-
[解決済み] makefile の "ifeq" 条件構文
-
[解決済み] makeとmake distの違いは何ですか?
-
[解決済み] Makefile.amとMakefile.inとは何ですか?
-
[解決済み] Make: コマンドが失敗した後、どのように続行するのですか?
-
[解決済み] Makefileの変数が前提条件として設定されていることを確認する方法は?
-
[解決済み] Makefile にファイルが存在するかどうかを確認し、削除するにはどうすればよいですか?