質問編集履歴
4
文章を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,27 +30,26 @@
|
|
30
30
|
|
31
31
|
```makefile
|
32
32
|
PRG :=AAEditor
|
33
|
-
|
33
|
+
SRC_DIR :=source
|
34
|
-
|
34
|
+
OBJ_DIR :=obj
|
35
|
-
|
35
|
+
DEP_DIR :=obj
|
36
|
-
DEP :=$(wildcard $(
|
36
|
+
DEP :=$(wildcard $(DEP_DIR)/*.d)
|
37
|
-
SRC :=$(wildcard $(
|
37
|
+
SRC :=$(wildcard $(SRC_DIR)/*.cpp)
|
38
|
-
OBJ :=$(addprefix $(
|
38
|
+
OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC))))
|
39
39
|
|
40
|
-
$(warning SRC = $(SRC));
|
40
|
+
#$(warning SRC = $(SRC)); #デバッグ
|
41
|
-
$(warning OBJ = $(OBJ));
|
41
|
+
#$(warning OBJ = $(OBJ)); #デバッグ
|
42
42
|
|
43
43
|
|
44
44
|
$(PRG): $(OBJ)
|
45
45
|
$(CXX) $^ -l ncurses -o $@
|
46
46
|
|
47
|
-
$(
|
47
|
+
$(OBJ_DIR)/%.o: source/%.cpp
|
48
48
|
$(CXX) -c -MMD -MP $^ -o $@
|
49
49
|
-include $(DEP)
|
50
50
|
|
51
51
|
clean:
|
52
|
-
rm -f ./
|
52
|
+
rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)
|
53
|
-
|
54
53
|
```
|
55
54
|
|
56
55
|
|
3
文章を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -36,6 +36,11 @@
|
|
36
36
|
DEP :=$(wildcard $(DEPDIR)/*.d)
|
37
37
|
SRC :=$(wildcard $(SRCDIR)/*.cpp)
|
38
38
|
OBJ :=$(addprefix $(OBJDIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC))))
|
39
|
+
|
40
|
+
$(warning SRC = $(SRC));
|
41
|
+
$(warning OBJ = $(OBJ));
|
42
|
+
|
43
|
+
|
39
44
|
$(PRG): $(OBJ)
|
40
45
|
$(CXX) $^ -l ncurses -o $@
|
41
46
|
|
@@ -63,64 +68,36 @@
|
|
63
68
|
これはフリーソフトウェアです: 自由に変更および配布できます.
|
64
69
|
法律の許す限り、 無保証 です.
|
65
70
|
makefile を読み込みます...
|
71
|
+
Makefile:11: SRC = source/Fps.cpp source/Color.cpp source/Scene.cpp source/Entry.cpp source/Main.cpp source/Screen.cpp source/Log.cpp source/Edit.cpp
|
72
|
+
Makefile:12: OBJ = obj/Fps.o obj/Color.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o
|
66
73
|
makefile の更新中....
|
67
74
|
最終ターゲットを更新中....
|
68
75
|
ファイル 'AAEditor' が存在しません.
|
69
76
|
ターゲット 'AAEditor' を再make する必要があります.
|
70
|
-
g++ obj/Fps.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
77
|
+
g++ obj/Fps.o obj/Color.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
71
|
-
/usr/bin/ld: obj/
|
78
|
+
/usr/bin/ld: obj/Color.o: in function `InitColorPairs()':
|
72
|
-
|
79
|
+
Color.cpp:(.text+0xdf): undefined reference to `GetColorNum(int, int)'
|
80
|
+
/usr/bin/ld: obj/Color.o: in function `SetColor(int, int)':
|
81
|
+
Color.cpp:(.text+0x140): undefined reference to `GetColorNum(int, int)'
|
82
|
+
/usr/bin/ld: obj/Color.o: in function `UnSetColor(int, int)':
|
83
|
+
Color.cpp:(.text+0x1af): undefined reference to `GetColorNum(int, int)'
|
73
84
|
/usr/bin/ld: obj/Screen.o: in function `Screen::Screen()':
|
74
85
|
Screen.cpp:(.text+0x1cc): undefined reference to `GetColorNum(int, int)'
|
75
86
|
/usr/bin/ld: obj/Screen.o: in function `Screen::UpdateScreen()':
|
76
87
|
Screen.cpp:(.text+0x331): undefined reference to `GetColorNum(int, int)'
|
77
|
-
/usr/bin/ld: obj/Screen.o: in function `Screen::Delete(int, int)':
|
78
|
-
Screen.cpp:(.text+0x47b): undefined reference to `GetColorNum(int, int)'
|
79
|
-
/usr/bin/ld: obj/Edit.o: in function `Edit::KeyInput()':
|
80
|
-
Edit.cpp:(.text+0x1bc): undefined reference to `GetColorNum(int, int)'
|
81
|
-
/usr/bin/ld: obj/Edit.o: in function `Edit::MouseInput()':
|
82
|
-
Edit.cpp:(.text+0x348): undefined reference to `GetColorNum(int, int)'
|
83
|
-
/usr/bin/ld: obj/
|
88
|
+
/usr/bin/ld: obj/Screen.o:Screen.cpp:(.text+0x47b): more undefined references to `GetColorNum(int, int)' follow
|
84
89
|
collect2: error: ld returned 1 exit status
|
85
|
-
make: *** [Makefile:
|
90
|
+
make: *** [Makefile:16: AAEditor] エラー 1
|
86
91
|
|
87
|
-
```
|
88
92
|
|
89
|
-
make clean 後再度実行
|
90
93
|
```
|
91
|
-
$ make
|
92
|
-
g++ -c -MMD -MP source/Fps.cpp -o obj/Fps.o
|
93
|
-
g++ -c -MMD -MP source/Scene.cpp -o obj/Scene.o
|
94
|
-
g++ -c -MMD -MP source/Entry.cpp -o obj/Entry.o
|
95
|
-
g++ -c -MMD -MP source/Main.cpp -o obj/Main.o
|
96
|
-
g++ -c -MMD -MP source/Screen.cpp -o obj/Screen.o
|
97
|
-
g++ -c -MMD -MP source/Log.cpp -o obj/Log.o
|
98
|
-
g++ -c -MMD -MP source/Edit.cpp -o obj/Edit.o
|
99
|
-
g++ obj/Fps.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
100
|
-
/usr/bin/ld: obj/Main.o: in function `main':
|
101
|
-
Main.cpp:(.text+0x62): undefined reference to `InitColorPairs()'
|
102
|
-
/usr/bin/ld: obj/Screen.o: in function `Screen::Screen()':
|
103
|
-
Screen.cpp:(.text+0x1cc): undefined reference to `GetColorNum(int, int)'
|
104
|
-
/usr/bin/ld: obj/Screen.o: in function `Screen::UpdateScreen()':
|
105
|
-
Screen.cpp:(.text+0x331): undefined reference to `GetColorNum(int, int)'
|
106
|
-
/usr/bin/ld: obj/Screen.o: in function `Screen::Delete(int, int)':
|
107
|
-
Screen.cpp:(.text+0x47b): undefined reference to `GetColorNum(int, int)'
|
108
|
-
/usr/bin/ld: obj/Edit.o: in function `Edit::KeyInput()':
|
109
|
-
Edit.cpp:(.text+0x1bc): undefined reference to `GetColorNum(int, int)'
|
110
|
-
/usr/bin/ld: obj/Edit.o: in function `Edit::MouseInput()':
|
111
|
-
Edit.cpp:(.text+0x348): undefined reference to `GetColorNum(int, int)'
|
112
|
-
/usr/bin/ld: obj/Edit.o:Edit.cpp:(.text+0x3f6): more undefined references to `GetColorNum(int, int)' follow
|
113
|
-
collect2: error: ld returned 1 exit status
|
114
|
-
make: *** [Makefile:9: AAEditor] エラー 1
|
115
94
|
|
95
|
+
make clean 後再度実行 $(warning)関数を利用
|
116
96
|
```
|
117
|
-
$(warning)関数を利用 ** **強調部に存在しています。
|
118
|
-
```
|
119
97
|
$ make
|
120
|
-
Makefile:11: SRC = source/Fps.cpp
|
98
|
+
Makefile:11: SRC = source/Fps.cpp source/Color.cpp source/Scene.cpp source/Entry.cpp source/Main.cpp source/Screen.cpp source/Log.cpp source/Edit.cpp
|
121
|
-
Makefile:12: OBJ = obj/Fps.o
|
99
|
+
Makefile:12: OBJ = obj/Fps.o obj/Color.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o
|
122
100
|
g++ obj/Fps.o obj/Color.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
123
|
-
|
124
101
|
/usr/bin/ld: obj/Color.o: in function `InitColorPairs()':
|
125
102
|
Color.cpp:(.text+0xdf): undefined reference to `GetColorNum(int, int)'
|
126
103
|
/usr/bin/ld: obj/Color.o: in function `SetColor(int, int)':
|
2
文章を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
提示コードのmakefileですがsource/%.cppを使ってsourceディレクトリファイルを全部見ているのですが なぜColor.oだけg++のリンクコマンドに乗らないのでしょうか?ワイルドカードを使っているのでディレクトリ内全部がリンク対象のはずです。
|
2
2
|
|
3
3
|
|
4
|
+
|
5
|
+
参考サイトA: [https://qiita.com/aosho235/items/8e90bf09795758cfb70b
|
6
|
+
](https://qiita.com/aosho235/items/8e90bf09795758cfb70b)
|
7
|
+
|
4
8
|
```makefile
|
5
9
|
g++ obj/Fps.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
6
10
|
```
|
@@ -18,6 +22,12 @@
|
|
18
22
|
```
|
19
23
|
|
20
24
|
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
21
31
|
```makefile
|
22
32
|
PRG :=AAEditor
|
23
33
|
SRCDIR :=source
|
@@ -103,4 +113,26 @@
|
|
103
113
|
collect2: error: ld returned 1 exit status
|
104
114
|
make: *** [Makefile:9: AAEditor] エラー 1
|
105
115
|
|
116
|
+
```
|
117
|
+
$(warning)関数を利用 ** **強調部に存在しています。
|
118
|
+
```
|
119
|
+
$ make
|
120
|
+
Makefile:11: SRC = source/Fps.cpp **source/Color.cpp** source/Scene.cpp source/Entry.cpp source/Main.cpp source/Screen.cpp source/Log.cpp source/Edit.cpp
|
121
|
+
Makefile:12: OBJ = obj/Fps.o **obj/Color.o** obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o
|
122
|
+
g++ obj/Fps.o obj/Color.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
123
|
+
|
124
|
+
/usr/bin/ld: obj/Color.o: in function `InitColorPairs()':
|
125
|
+
Color.cpp:(.text+0xdf): undefined reference to `GetColorNum(int, int)'
|
126
|
+
/usr/bin/ld: obj/Color.o: in function `SetColor(int, int)':
|
127
|
+
Color.cpp:(.text+0x140): undefined reference to `GetColorNum(int, int)'
|
128
|
+
/usr/bin/ld: obj/Color.o: in function `UnSetColor(int, int)':
|
129
|
+
Color.cpp:(.text+0x1af): undefined reference to `GetColorNum(int, int)'
|
130
|
+
/usr/bin/ld: obj/Screen.o: in function `Screen::Screen()':
|
131
|
+
Screen.cpp:(.text+0x1cc): undefined reference to `GetColorNum(int, int)'
|
132
|
+
/usr/bin/ld: obj/Screen.o: in function `Screen::UpdateScreen()':
|
133
|
+
Screen.cpp:(.text+0x331): undefined reference to `GetColorNum(int, int)'
|
134
|
+
/usr/bin/ld: obj/Screen.o:Screen.cpp:(.text+0x47b): more undefined references to `GetColorNum(int, int)' follow
|
135
|
+
collect2: error: ld returned 1 exit status
|
136
|
+
make: *** [Makefile:16: AAEditor] エラー 1
|
137
|
+
|
106
138
|
```
|
1
文章を修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
makefile 特定の
|
1
|
+
makefile 特定のオブジェクトファイルがg++ コマンドの行に乗らない生成されない原因が知りたい
|
body
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
提示コードのmakefileですがsource/%.cppを使ってsourceディレクトリファイルを全部見ているのですが なぜColor.
|
1
|
+
提示コードのmakefileですがsource/%.cppを使ってsourceディレクトリファイルを全部見ているのですが なぜColor.oだけg++のリンクコマンドに乗らないのでしょうか?ワイルドカードを使っているのでディレクトリ内全部がリンク対象のはずです。
|
2
2
|
|
3
3
|
|
4
|
+
```makefile
|
5
|
+
g++ obj/Fps.o obj/Scene.o obj/Entry.o obj/Main.o obj/Screen.o obj/Log.o obj/Edit.o -l ncurses -o AAEditor
|
6
|
+
```
|
4
7
|
|
5
8
|
|
6
9
|
```command
|