2017-08-09-pitfalls-of-g++

layouttitlesubtitledateauthortags
post
Makefile要点
那些年我们一起踩过的Makefile大坑(其实并没有,是你丫比较菜而已。。。)
2017-08-09
cj
makefile c++ g++

Makefile 要点

  1. 不能用 ~ 表示 home 路径,可以用 $HOME

  2. $(CXX) $(LDFLAGS) -o $(EXEC) $^ $(INCLUDEDIR) $(LIBDIR) 这种写法没问题,但是把$(INCLUDEDIR) $(LIBDIR)放到 -o 前面就会出现 link 失败,wtf

  3. 检测文件是否存在并执行命令

    检测配置文件是否存在,不存在就用模板创建一份并提示用户修改:

    install:
        mkdir -p $(PROJDIR)/bin; \
        cp $(PROJECT_NAME) $(PROJDIR)/bin/; \
        ./build_symbols.sh $(PROJECT_NAME); 
    ifeq ("$(wildcard $(PROJDIR)/bin/$(PROJECT_NAME).config)","")
        cp $(PROJECT_NAME).config.example $(PROJDIR)/bin/$(PROJECT_NAME).config 
        @echo "You should edit $(PROJDIR)/$(PROJECT_NAME).config before running!"
    endif
    • 使用 ifeq ... endif,不能使用 [ ! -e /path/to/file ] && some-command,当文件存在时会导致 make 失败
    • ifeqendif 前面不能有空白
    • 可以在 echo some-message 前面加上 @ : @echo some-message,执行时不会重复输出

Refs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值