teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

文章を修正

2021/09/12 09:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,68 +1,59 @@
1
1
  ###知りたいこと
2
- 1,以下のエラー原因たい
2
+ 1, 提示サイトを参考にコピペして自分なりに要らないものを取っ払ったのですがのエラーの取り方わかません。
3
3
  2,makefileにおけるソースファイルとヘッダーファイルの関係が知りたい。
4
4
  3,ヘッダーファイルを変更しても再コンパイルされない状況が発生したのですがこれはmakefileでどうやって対処したらいいのか知りたい。
5
+ 4,
5
6
 
6
-
7
7
  ###質問内容
8
8
  提示のmakefileですが複数のヘッダーファイルとソースファイルがあるプロジェクトでどうやったら正確にコンパイルできるのでしょうか?
9
9
  ヘッダーを更新してもコンパイルされないという状況が発生したり以下のようなエラーが発生したりとどうもうまく記述できません。
10
- 参考サイトを見ると初学者の自分は見慣れない構文が多く処理が追えません。w
11
10
 
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
11
  ###参考サイト
24
- 参考サイトA: [https://www.hiroom2.com/2016/09/03/makefile%E3%81%A7%E3%83%98%E3%83%83%E3%83%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82%E3%82%92%E6%89%B1%E3%81%86/](https://www.hiroom2.com/2016/09/03/makefile%E3%81%A7%E3%83%98%E3%83%83%E3%83%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82%E3%82%92%E6%89%B1%E3%81%86/)
12
+ 参考サイトA: [https://www.usagi1975.com/041620182112/](https://www.usagi1975.com/041620182112/)
25
13
 
26
-
27
- 参考サイトB: https://auewe.hatenablog.com/entry/2017/02/08/195625
28
-
29
14
  ```
30
15
  $ ls
31
16
  AAEditor Edit.o Entry.o Main.o Scene.o bin header lib log.txt makefile obj source
32
17
  ```
33
18
  ```Error
34
19
  $ make
35
- g++ -c header/Bit.hpp
36
- g++ -std=c++14 Main.o Scene.o Edit.o Entry.o Bit.o -lncurses -o AAEditor
20
+ g++ -c -MMD -MP source/Edit.cpp source/Main.cpp source/Scene.cpp source/Entry.cpp
21
+ cc -Wall -L/usr/lib -g -fPIC %.d.o -o %.d
22
+ cc: error: %.d.o: そのようなファイルやディレクトリはありません
23
+ cc: fatal error: no input files
24
+ compilation terminated.
25
+ g++ -c -MMD -MP source/Edit.cpp source/Main.cpp source/Scene.cpp source/Entry.cpp
26
+ g++ %.o -o main
37
- g++: error: Bit.o: そのようなファイルやディレクトリはありません
27
+ g++: error: %.o: そのようなファイルやディレクトリはありません
28
+ g++: fatal error: no input files
29
+ compilation terminated.
38
- make: *** [makefile:7: AAEditor] エラー 1
30
+ make: *** [makefile:19: main] エラー 1
31
+
39
32
  ```
40
33
 
41
34
  ```makefile
42
- CC =g++
35
+ CXX =g++
43
- PRG =AAEditor#実行ファイル
36
+ CXXFLAGS = -Wall -g -fpic -I. -I/usr/include -std=c++14
44
- OBJ =Main.o Scene.o Edit.o Entry.o Bit.o #オブジェクトファイル
37
+ LDFLAGS = -Wall -L/usr/lib -g -fPIC
45
- SRC =source/Main.cpp source/Scene.cpp source/Edit.cpp source/Entry.cpp header/Bit.hpp #ソースファイル
46
38
 
47
- $(PRG): $(OBJ)
39
+ LIBS = -lstdc++ -lm
48
- $(CC) -std=c++14 $(OBJ) -lncurses -o $(PRG)
40
+ LIBS2 = -lstdc++ -lm -lusb
49
41
 
42
+ TARGET2 = main
50
- Bit.o: header/Bit.hpp
43
+ SRCS = source/Edit.cpp source/Main.cpp source/Scene.cpp source/Entry.cpp
51
- $(CC) -c $^
44
+ OBJS :=%.o
45
+ DEPS :=%.d
52
46
 
53
- Edit.o: source/Edit.cpp header/Edit.hpp
47
+ TARGET1 =libhoge.so
54
- $(CC) -c $^
48
+ LIBOBJS :=%.o
49
+ LIBDEPS :=%.d
55
50
 
51
+ # 実行ファイル作成
56
- Scene.o: source/Scene.cpp header/Scene.hpp
52
+ $(TARGET2): $(OBJS)
57
- $(CC) -c $^
53
+ $(CXX) $^ -o $@
58
54
 
59
- Main.o: source/Main.cpp
60
- $(CC) -c $^
55
+ $(OBJS): $(SRCS)
56
+ $(CXX) -c -MMD -MP $(SRCS)
57
+ -include $(DEPS) $(LIBDEPS)
61
58
 
62
- Entry.o: source/Entry.cpp header/Entry.hpp
63
- $(CC) -c $^
64
-
65
- Clean:
66
- rm -f *.o
67
-
68
59
  ```