两天前就开始在linux 下编写程序,没有在IDE环境下开发。主要目的就是学习GNU Make 项目管理的编写。
正好近日去了解socket编程,参考网上教程写了代码。源文件分别为,mysocket.h ,mysocket.cpp client.cpp 以及server.cpp 。我都用g++编译通过的。我学习make的文档是徐海兵同志翻译的GNU make 使用手册。写了我第一个make程序。
mysocket.o: mysocket.cpp mysocket.h
g++ -c mysocket.cpp
client.o: client.cpp mysocket.h
g++ -c client.cpp
server.o: server.cpp mysocket.h
g++ -c server.cpp
client: client.o mysocket.o
g++–o client client.o mysocket.o
server: server.o mysocket.o
g++ -o server server.o mysocket.o
clean:
rm *.o
Note:终端下,执行make ,默认是执行第一条命令。
令我不解的地方有,我make mysocket.o ,为啥命令显示 g++ -c –o mysocket.o mysocket.cpp
第二个地方是:
Client的依赖关系,我写的是client.o mysocket.o ,为啥执行的时候只编译了client.cpp .另外我修改了client ,保存后再次执行make client,显示一样的。纵然我改成了client: client.o mysocket.o
g++ -o client mysocket.o
PS:若有人看到这篇文章,请为我答疑,当然我也会继续看教程。或许之后会知道更多。推荐一本书《GNU make 项目管理》 .
后记:上诉莫名的错误才来自make的描述文件的命名。make的描述文件应该命名为makefile,Makefile,GNUMakefile