質問編集履歴
7
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,6 +43,8 @@
|
|
43
43
|
|
44
44
|
|
45
45
|
参考サイト: [https://www.yunabe.jp/docs/static_library.html](https://www.yunabe.jp/docs/static_library.html)
|
46
|
+
|
47
|
+
参考サイト2: [https://www.yokoweb.net/dokuwiki/programing/c-language/gcc-programing/gcc-library-link-order](https://www.yokoweb.net/dokuwiki/programing/c-language/gcc-programing/gcc-library-link-order)
|
46
48
|
|
47
49
|
|
48
50
|
|
6
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Makefile 静的ライブラリをリンク
|
1
|
+
Makefile 静的ライブラリをリンクすると定義されていませんと表示される原因が知りたい。
|
test
CHANGED
@@ -88,12 +88,6 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
OBJ :=$(FRAMEWORK_OBJ) $(GAME_OBJ)
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
91
|
FRAMEWORK_DEP :=$(wildcard $(FRAMEWORK_DEP_DIR)/*.d)
|
98
92
|
|
99
93
|
GAME_DEP :=$(wildcard $(GAME_DEP_DIR)/*.d)
|
@@ -104,13 +98,15 @@
|
|
104
98
|
|
105
99
|
$(PRG): $(GAME_OBJ)
|
106
100
|
|
107
|
-
ar rcs $(STATIC_LIB) $(FRAMEWORK_OBJ)
|
108
|
-
|
109
|
-
$(CXX)
|
101
|
+
$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -L -l$(STATIC_LIB)
|
110
102
|
|
111
103
|
|
112
104
|
|
105
|
+
|
106
|
+
|
113
|
-
|
107
|
+
$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
108
|
+
|
109
|
+
ar rc $@ $^
|
114
110
|
|
115
111
|
|
116
112
|
|
5
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Makefile 静的ライブラリをリンクして
|
1
|
+
Makefile 静的ライブラリをリンクして参照する方法が知りたい。
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
提示コードですがFrameWorkとGame二つのプロジェクトがありその内のFrameWorkのobjファイルを.aファイル出力してそれをGameプロジェクトでリンクして使いたいのですが以下のエラー出ます。これはなぜでしょうか?
|
1
|
+
提示コードですがFrameWorkとGame二つのプロジェクトがありその内のFrameWorkのobjファイルを.aファイル出力してそれをGameプロジェクトでリンクして使いたいのですが以下のエラー出ます。これはなぜでしょうか? どうやってライブラリを参照するのでしょうか?
|
2
2
|
|
3
3
|
|
4
4
|
|
4
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Makefile
|
1
|
+
Makefile 静的ライブラリをリンクしているにの定義されていませんと表示される原因が知りたい。
|
test
CHANGED
File without changes
|
3
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,39 +22,29 @@
|
|
22
22
|
|
23
23
|
$ make
|
24
24
|
|
25
|
-
make
|
25
|
+
ar rcs FrameWork.a FrameWork/obj/Render.o FrameWork/obj/Shape.o FrameWork/obj/Sprite.o FrameWork/obj/Transform.o FrameWork/obj/Camera.o FrameWork/obj/Init.o FrameWork/obj/Resource.o FrameWork/obj/Text.o FrameWork/obj/Shader.o FrameWork/obj/Model.o FrameWork/obj/Simple.o FrameWork/obj/Help.o FrameWork/obj/Window.o
|
26
|
+
|
27
|
+
g++ -lrt Game/obj/Scene.o Game/obj/Entry.o Game/obj/Game.o Game/obj/Camera.o Game/obj/Main.o Game/obj/LightCube.o Game/obj/Player.o Game/obj/Actor.o Game/obj/Ground.o -o TopViewAction -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -L -lFrameWork.a
|
28
|
+
|
29
|
+
Game/obj/Camera.o: 関数 `Camera::Update()' 内:
|
30
|
+
|
31
|
+
Camera.cpp:(.text+0x11b): `FrameWork::Camera::setLook(glm::vec<3, float, (glm::qualifier)0>)' に対する定義されていない参照です
|
32
|
+
|
33
|
+
Camera.cpp:(.text+0x136): `FrameWork::Camera::setPosition(glm::vec<3, float, (glm::qualifier)0>)' に対する定義されていない参照です
|
34
|
+
|
35
|
+
Game/obj/Main.o: 関数 `main' 内:
|
36
|
+
|
37
|
+
Main.cpp:(.text+0x49): `FrameWork::Init(glm::vec<2, int, (glm::qualifier)0>, glm::vec<2, int, (glm::qualifier)0>, char const*)' に対する定義されていない参照です
|
38
|
+
|
39
|
+
|
26
40
|
|
27
41
|
```
|
28
42
|
|
29
43
|
|
30
44
|
|
45
|
+
参考サイト: [https://www.yunabe.jp/docs/static_library.html](https://www.yunabe.jp/docs/static_library.html)
|
31
46
|
|
32
47
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
参考サイト: [https://www.yunabe.jp/docs/static_library.html](https://www.yunabe.jp/docs/static_library.html)
|
40
|
-
|
41
|
-
##### 該当コード
|
42
|
-
|
43
|
-
```
|
44
|
-
|
45
|
-
$(PRG): $(GAME_OBJ)
|
46
|
-
|
47
|
-
$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -l$(STATIC_LIB)
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
52
|
-
|
53
|
-
ar rcs $^ $@
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
```
|
58
48
|
|
59
49
|
|
60
50
|
|
@@ -110,17 +100,17 @@
|
|
110
100
|
|
111
101
|
|
112
102
|
|
103
|
+
|
104
|
+
|
113
105
|
$(PRG): $(GAME_OBJ)
|
114
106
|
|
107
|
+
ar rcs $(STATIC_LIB) $(FRAMEWORK_OBJ)
|
108
|
+
|
115
|
-
$(CXX) $^ -o $@
|
109
|
+
$(CXX) -lrt $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -L -l$(STATIC_LIB)
|
116
110
|
|
117
111
|
|
118
112
|
|
119
|
-
$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
113
|
+
#$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
120
|
-
|
121
|
-
ar rcs $^ $@
|
122
|
-
|
123
|
-
|
124
114
|
|
125
115
|
|
126
116
|
|
@@ -136,7 +126,7 @@
|
|
136
126
|
|
137
127
|
|
138
128
|
|
139
|
-
$(G
|
129
|
+
$(GAME_OBJ_DIR)/%.o: Game/source/%.cpp
|
140
130
|
|
141
131
|
$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@
|
142
132
|
|
2
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Makefile
|
1
|
+
Makefile .aファイルを出力してリンクしてビルドする方法が知りたい。
|
test
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
|
1
|
+
提示コードですがFrameWorkとGame二つのプロジェクトがありその内のFrameWorkのobjファイルを.aファイル出力してそれをGameプロジェクトでリンクして使いたいのですが以下のエラー出ます。これはなぜでしょうか?
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
##### 環境
|
6
|
+
|
7
|
+
CentOS GUI
|
6
8
|
|
7
9
|
|
8
10
|
|
@@ -10,11 +12,59 @@
|
|
10
12
|
|
11
13
|
|
12
14
|
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
##### 端末
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
$ make
|
24
|
+
|
25
|
+
make: *** 'TopViewAction' に必要なターゲット 'Game/obj/Scene.o' を make するルールがありません. 中止.
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
参考サイト: [https://www.yunabe.jp/docs/static_library.html](https://www.yunabe.jp/docs/static_library.html)
|
40
|
+
|
41
|
+
##### 該当コード
|
42
|
+
|
43
|
+
```
|
44
|
+
|
45
|
+
$(PRG): $(GAME_OBJ)
|
46
|
+
|
47
|
+
$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -l$(STATIC_LIB)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
52
|
+
|
53
|
+
ar rcs $^ $@
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
|
13
61
|
##### Makefile
|
14
62
|
|
15
63
|
```
|
16
64
|
|
17
|
-
PRG :=
|
65
|
+
PRG :=TopViewAction
|
66
|
+
|
67
|
+
STATIC_LIB :=FrameWork.a
|
18
68
|
|
19
69
|
FRAMEWORK_SRC_DIR :=FrameWork/source/
|
20
70
|
|
@@ -48,9 +98,9 @@
|
|
48
98
|
|
49
99
|
|
50
100
|
|
51
|
-
|
101
|
+
OBJ :=$(FRAMEWORK_OBJ) $(GAME_OBJ)
|
52
102
|
|
53
|
-
|
103
|
+
|
54
104
|
|
55
105
|
|
56
106
|
|
@@ -60,11 +110,19 @@
|
|
60
110
|
|
61
111
|
|
62
112
|
|
63
|
-
$(PRG): $(OBJ)
|
113
|
+
$(PRG): $(GAME_OBJ)
|
64
114
|
|
65
|
-
|
115
|
+
$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 -l$(STATIC_LIB)
|
66
116
|
|
117
|
+
|
118
|
+
|
119
|
+
$(STATIC_LIB): $(FRAMEWORK_OBJ)
|
120
|
+
|
67
|
-
ar rcs
|
121
|
+
ar rcs $^ $@
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
68
126
|
|
69
127
|
|
70
128
|
|
@@ -73,6 +131,8 @@
|
|
73
131
|
$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@
|
74
132
|
|
75
133
|
-include $(FRAMEWORK_DEP)
|
134
|
+
|
135
|
+
|
76
136
|
|
77
137
|
|
78
138
|
|
@@ -86,7 +146,7 @@
|
|
86
146
|
|
87
147
|
clean:
|
88
148
|
|
89
|
-
rm -f ./$(FRAMEWORK_OBJ_DIR)/*.o *.out ./$(FRAMEWORK_OBJ_DIR)/*.d *.a $(
|
149
|
+
rm -f ./$(FRAMEWORK_OBJ_DIR)/*.o *.out ./$(FRAMEWORK_OBJ_DIR)/*.d *.a $(STATIC_LIB)
|
90
150
|
|
91
151
|
rm -f ./$(GAME_OBJ_DIR)/*.o *.out ./$(GAME_OBJ_DIR)/*.d *.a $(PRG)
|
92
152
|
|
1
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Makefile
|
1
|
+
Makefile 二つプロジェクトを分てビルドする方法が知りたい。片方は .aファイルを出力したい。
|
test
CHANGED
@@ -1,12 +1,8 @@
|
|
1
|
-
Makefileで二つのプロジェクトGame,FrameWorkがあるのですが
|
1
|
+
Makefileで二つのプロジェクトGame,FrameWorkがあるのですが二つのプロジェクトを分てビルドしたいのですがその場合はどうやってMakefileを記述すればいいのでしょうか?またFrameWorkプロジェクトの方は.aライブラリを生成したいです。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
#####知りたいこと
|
8
|
-
|
9
|
-
|
5
|
+
参考サイト: [https://www.fixes.pub/program/194511.html](https://www.fixes.pub/program/194511.html)
|
10
6
|
|
11
7
|
|
12
8
|
|
@@ -14,81 +10,7 @@
|
|
14
10
|
|
15
11
|
|
16
12
|
|
17
|
-
#####
|
18
|
-
|
19
|
-
```
|
20
|
-
|
21
|
-
$ make
|
22
|
-
|
23
|
-
ar rcs obj/Render.o obj/Shape.o obj/Sprite.o obj/Transform.o obj/Camera.o obj/Init.o obj/Resource.o obj/Text.o obj/Shader.o obj/Model.o obj/Simple.o obj/Help.o obj/Window.o -o FrameWork -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -ldl -lX11
|
24
|
-
|
25
|
-
ar: 二つの異なった操作オプションが指定されました
|
26
|
-
|
27
|
-
make: *** [Makefile:12: FrameWork] エラー 1
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
```
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
参考サイト:[ https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/developer_guide/creating-libraries-gcc](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/developer_guide/creating-libraries-gcc)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
##### FrameWork Makefile
|
40
|
-
|
41
|
-
```
|
42
|
-
|
43
|
-
PRG :=FrameWork
|
44
|
-
|
45
|
-
SRC_DIR :=source
|
46
|
-
|
47
|
-
OBJ_DIR :=obj
|
48
|
-
|
49
|
-
DEP_DIR :=obj
|
50
|
-
|
51
|
-
DEP :=$(wildcard $(DEP_DIR)/*.d)
|
52
|
-
|
53
|
-
SRC :=$(wildcard $(SRC_DIR)/*.cpp)
|
54
|
-
|
55
|
-
OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC))))
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
$(PRG): $(OBJ)
|
62
|
-
|
63
|
-
#$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -ldl -lX11
|
64
|
-
|
65
|
-
ar rcs $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -ldl -lX11
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
$(OBJ_DIR)/%.o: source/%.cpp
|
72
|
-
|
73
|
-
$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@
|
74
|
-
|
75
|
-
-include $(DEP)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
clean:
|
82
|
-
|
83
|
-
rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
```
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
#####Game,FrameWork二つのプロジェクトをビルドするMakefile
|
13
|
+
##### Makefile
|
92
14
|
|
93
15
|
```
|
94
16
|
|
@@ -98,13 +20,15 @@
|
|
98
20
|
|
99
21
|
GAME_SRC_DIR :=Game/source/
|
100
22
|
|
23
|
+
FRAMEWORK_OBJ_DIR :=FrameWork/obj
|
24
|
+
|
101
|
-
OBJ_DIR
|
25
|
+
GAME_OBJ_DIR :=Game/obj
|
102
26
|
|
103
27
|
|
104
28
|
|
105
|
-
FRAMEWORK_DEP_DIR :=
|
29
|
+
FRAMEWORK_DEP_DIR :=$(FRAMEWORK_OBJ_DIR)
|
106
30
|
|
107
|
-
GAME_DEP_DIR :=
|
31
|
+
GAME_DEP_DIR :=$(GAME_OBJ_DIR)
|
108
32
|
|
109
33
|
|
110
34
|
|
@@ -118,13 +42,17 @@
|
|
118
42
|
|
119
43
|
|
120
44
|
|
121
|
-
FRAMEWORK_OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(FRAMEWORK_SRC))))
|
45
|
+
FRAMEWORK_OBJ :=$(addprefix $(FRAMEWORK_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(FRAMEWORK_SRC))))
|
122
46
|
|
123
|
-
GAME_OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(GAME_SRC))))
|
47
|
+
GAME_OBJ :=$(addprefix $(GAME_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(GAME_SRC))))
|
124
48
|
|
125
49
|
|
126
50
|
|
127
|
-
OBJ :=$(FRAMEWORK_OBJ) $(GAME_OBJ)
|
51
|
+
#OBJ :=$(FRAMEWORK_OBJ) $(GAME_OBJ)
|
52
|
+
|
53
|
+
OBJ :=$(FRAMEWORK_OBJ)
|
54
|
+
|
55
|
+
|
128
56
|
|
129
57
|
FRAMEWORK_DEP :=$(wildcard $(FRAMEWORK_DEP_DIR)/*.d)
|
130
58
|
|
@@ -134,19 +62,21 @@
|
|
134
62
|
|
135
63
|
$(PRG): $(OBJ)
|
136
64
|
|
137
|
-
|
65
|
+
#$(CXX) $^ -o $@ -ldl -lGLESv2 -lassimp -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11
|
66
|
+
|
67
|
+
ar rcs test.a $(OBJ)
|
138
68
|
|
139
69
|
|
140
70
|
|
141
|
-
$(OBJ_DIR)/%.o: FrameWork/source/%.cpp
|
71
|
+
$(FRAMEWORK_OBJ_DIR)/%.o: FrameWork/source/%.cpp
|
142
72
|
|
143
|
-
$(CXX)
|
73
|
+
$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@
|
144
74
|
|
145
75
|
-include $(FRAMEWORK_DEP)
|
146
76
|
|
147
77
|
|
148
78
|
|
149
|
-
$(OBJ_DIR)/%.o: Game/source/%.cpp
|
79
|
+
$(Game_OBJ_DIR)/%.o: Game/source/%.cpp
|
150
80
|
|
151
81
|
$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@
|
152
82
|
|
@@ -156,7 +86,11 @@
|
|
156
86
|
|
157
87
|
clean:
|
158
88
|
|
89
|
+
rm -f ./$(FRAMEWORK_OBJ_DIR)/*.o *.out ./$(FRAMEWORK_OBJ_DIR)/*.d *.a $(PRG)
|
90
|
+
|
159
|
-
rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)
|
91
|
+
rm -f ./$(GAME_OBJ_DIR)/*.o *.out ./$(GAME_OBJ_DIR)/*.d *.a $(PRG)
|
92
|
+
|
93
|
+
|
160
94
|
|
161
95
|
|
162
96
|
|