一个makefile文件的解析

本文解析了一个makefile文件中的重要符号如$@和$<,以及编译选项如-D_GNU_SOURCE, -Wall, -DLINUX, -c, -o, -g, -lz, -lrt, 和-I指定头文件搜索路径的作用。这些内容有助于深入理解makefile的工作原理和g++编译过程。" 51473788,5659327,使用EasyUI实现.NET DataGrid的搜索功能,"['.NET', 'DataGrid', 'EasyUI', '搜索', 'Web开发']
摘要由CSDN通过智能技术生成

makefile文件如下所示:


CXX = g++
CC = gcc
RM = rm -f
CXXFLAGS += -Wall - D_GNU_SOURCE -g -DLINUX

LIBS = 
INCS = -I../../

all:main curltest

main:main.o
	$(CXX) -o $@ $< ../tcpwrap.o ../tcp_client.o ../../random/random.o
	
curltest:curltest.o ../curlwrap.h
	$(CXX) -o $@ $< ../../binary/binary_util.o /usr/local/lib/libcurl.a -lz -lrt

%.o:%.cpp
	$(CXX) -c $(CXXFLAGS) $(INCS) $< -o $@
	
clean:
	$(RM) $(TARGETS) *.o


对其中有疑惑的地方做个记录和总结


1. $@, $<
    $@,表示目标集。$<,表示依赖集。
    上例中 $(CXX) -o $@ $< ../tcpwrap.o ../tcp_client.o ../../random/random.o,$@ 表示生成的可执行文件 main,$< 则表示中间文件 main.o


2. -D_GNU_SOURCE
   这个参数表示编写的代码,要符合GNU的规范。
   关于GNU规范,参考文档 http://blog.csdn.net/romandion/article/details/1675338

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值