下記のようなフォルダ構成で、Makefileによって実行ファイルを生成したいと考えています。
├── Makefile ├── inc │ ├── sum.hpp │ └── sub.hpp └── src │ ├── sum.cpp │ ├── sub.cpp │ └── main.cpp └── obj
上記のフォルダ構成で、Makefileを実行したとき、下記のようにしたいと考えています。
├── Makefile ├── inc │ ├── sum.hpp │ └── sub.hpp └── src │ ├── sum.cpp │ ├── sub.cpp │ └── main.cpp └── obj │ ├── sum.o │ ├── sub.o │ └── main.o └── main
そこで下記のようなMakefileを書きました
Makefile
1CC = g++ 2CFLAGS = -O0 -g -Wall 3INCLUDE = -I./inc 4SRCS_BASES = main\ 5 sub\ 6 sum 7 8SRCDIR = ./src 9OBJDIR = ./obj 10TARGET = main 11 12SRCS = $(addprefix $(SRCDIR)/, $(addsuffix .cpp, $(SRCS_BASES))) 13OBJS = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(SRCS_BASES))) 14 15$(TARGET): $(OBJS) 16 $(CC) -o $@ $^ 17 18$(OBJS): $(SRCS) 19 $(CC) $(CFLAGS) $(INCLUDE) -o $@ -c $< 20 21ALL: clean $(TARGET) 22 23clean: 24 rm -f test ./obj/test.o ./obj/sub.o ./obj/sum.o
しかし、上記Makefileを実行すると、
g++ -O0 -g -Wall -I./inc -o obj/test.o -c src/test.cpp
g++ -O0 -g -Wall -I./inc -o obj/sub.o -c src/test.cpp
g++ -O0 -g -Wall -I./inc -o obj/sum.o -c src/test.cpp
g++ -o test obj/test.o obj/sub.o obj/sum.o
となってしまいます。
私としては、
g++ -O0 -g -Wall -I./inc -o obj/test.o -c src/test.cpp
g++ -O0 -g -Wall -I./inc -o obj/sub.o -c src/sub.cpp
g++ -O0 -g -Wall -I./inc -o obj/sum.o -c src/sum.cpp
g++ -o test obj/test.o obj/sub.o obj/sum.o
としたいです。
どのようにMakefileを修正すれば、私が望むような形になるのでしょうか…。
ご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/18 06:33
2020/10/18 06:44
2020/10/18 06:49
2020/10/18 07:10