回答編集履歴

1

追記1

2019/11/18 07:44

投稿

BeatStar
BeatStar

スコア4958

test CHANGED
@@ -29,3 +29,123 @@
29
29
 
30
30
 
31
31
  として動かすとかですね。
32
+
33
+
34
+
35
+ ---------------
36
+
37
+
38
+
39
+ [追記1]
40
+
41
+
42
+
43
+ 私は最近cygwin上でmakefileを使い始めました。
44
+
45
+ (それまではWindowsコマンドプロンプト上でバッチファイルから...)
46
+
47
+
48
+
49
+ なので詳しいことはわかりませんが、
50
+
51
+
52
+
53
+ 方法1: 上記で挙げた方法を「シェルスクリプトを介して」コンパイルする
54
+
55
+
56
+
57
+ 例えば、
58
+
59
+ ```ここに言語を入力
60
+
61
+ make INCLUDE_PATHS=-I./src/dir
62
+
63
+ ```
64
+
65
+ とシェルスクリプト( まあ、バッチファイルでもいいけど... ) に書いて、これを介してコンパイルする。
66
+
67
+
68
+
69
+ 方法2: 直接makefileに書き込む
70
+
71
+
72
+
73
+ ```ここに言語を入力
74
+
75
+ /*project_dir*/
76
+
77
+ CC = gcc
78
+
79
+
80
+
81
+ # このへんにCFLAGSなり、独自のINCLUDEパスなりを追加する
82
+
83
+
84
+
85
+ TARGET = http_object
86
+
87
+
88
+
89
+ SRC_DIR = ./src/main
90
+
91
+
92
+
93
+ INCLUDE_PATHS :=
94
+
95
+
96
+
97
+ include ./src/Makefile
98
+
99
+
100
+
101
+ $(TARGET):
102
+
103
+ $(CC) $(INCLUDE_PATHS) $(SRC_DIR)/main.c $< -o $@
104
+
105
+ ```
106
+
107
+
108
+
109
+ 方法3: makefileを介して別のmakefileを呼び出す
110
+
111
+
112
+
113
+ この方法はやったことありませんが、[参考資料](http://objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/gnu-make/rule.html)の「タスク」の項目みたいに、
114
+
115
+
116
+
117
+ ```ここに言語を入力
118
+
119
+ # ファイル名 = comile.make
120
+
121
+ compile:
122
+
123
+ make CFLAGS=-I./src
124
+
125
+ ```
126
+
127
+
128
+
129
+ としておいて、
130
+
131
+
132
+
133
+ ```ここに言語を入力
134
+
135
+ make -f compile.make
136
+
137
+ ```
138
+
139
+
140
+
141
+ とするとか。
142
+
143
+ (うまくいくかどうかわかりませんが...)
144
+
145
+
146
+
147
+ あと、インクルードに関しては INCLUDE( いや、CFLAGSの方か? )っていう、デフォルトで用意されている変数?があるようです。
148
+
149
+ 参考: [リンク1](http://urin.github.io/posts/2013/simple-makefile-for-clang)
150
+
151
+ 参考: [リンク2](https://stackoverflow.com/questions/341387/adding-a-directory-for-the-headers-in-a-makefile)