all: servidor
servidor: servidor.o
gcc -lpthread -o servidor.o
servidor.o:
clean:
gcc -c servidor.c
rm -rf servidor.o
一)是clean:
線消除了servidor.c
文件?
b)如何修改makefile以便編譯client.c
程序並創建client.o
?
all: servidor
servidor: servidor.o
gcc -lpthread -o servidor.o
servidor.o:
clean:
gcc -c servidor.c
rm -rf servidor.o
一)是clean:
線消除了servidor.c
文件?
b)如何修改makefile以便編譯client.c
程序並創建client.o
?
你的整個生成文件應該是這樣的:
LDLIBS=-lpthread
servidor: servidor.o client.o
clean:
<TAB>rm -f *.o
假設gmake而不是例如AIX make。 – 2010-12-06 14:31:49
一)是乾淨的:線消除了 servidor.c文件?
號線
gcc -c servidor.c
只是確保servidor.o
跛腳的方式存在,並且隨後rm
不會失敗。它應該是
clean:
-rm -rf servidor.o
B)我如何修改Makefile也使其編譯一個client.c程序並創建一個client.o?
最簡單的方法是使用內置的規則。如果您在任何規則的先決條件中添加client
或client.o
,它將自動從client.c
構建。
(並添加-lpthread
到LDLIBS
,如果你需要它client.c
)
makefile中似乎很奇怪,我不告它是否能正常工作或沒有?但我認爲它更好,如下所示:
all: client
client: client.o
gcc -lpthread -o client.o
client.o:
gcc -c client.c
clean:
rm -rf client.o
如果這就是Makefile **真**看起來像,我不認爲它會工作。 – Pointy 2010-12-06 14:14:55
第一次`gcc`調用肯定不能按原樣工作。它應該讀取`gcc -o servidor servidor.o -lpthread`。 – zwol 2010-12-06 21:14:59