【错误总结】makefile的编写问题:一定要注意不能有随随便便的tab、空格等
2016-03-04 17:07
429 查看
makefile的语法是非常严格的,不同于C语言,makefile中的tab也是语法中的一部分,并不会被忽略掉!正确的语法一旦“排版混乱”后会发生各种奇怪的错误,所以,发生错误时,首先确定没有多余的tab、空格等。例如下面:
# Makefile for building: hellorect
CC = gcc
CXX = g++
LINKER = g++
LFLAGS = -lm -static
OBJECTS = rect.o hellorect.o
DSTTARGET = hellorect
# Default rule
all: $(DSTTARGET)
$(DSTTARGET): $(OBJECTS)
$(LINKER) $(LFLAGS) -o $@ $(OBJECTS)
hellorect.o: hellorect.cpp
$(CXX) -c -o $@ $<
rect.o: rect.cpp
$(CXX) -c -o $@ $<
clean:
rm $(OBJECTS) hellorect
上面这段makefile的语法是没问题的,但是如果你采用一些“笨办法”将其复制进linux终端的新文件中,导致排版混乱后,错误就产生了,各种你想象不到的错误!
# Makefile for building: hellorect
CC = gcc
CXX = g++
LINKER = g++
LFLAGS = -lm -static
OBJECTS = rect.o hellorect.o
DSTTARGET = hellorect
# Default rule
all: $(DSTTARGET)
$(DSTTARGET): $(OBJECTS)
$(LINKER) $(LFLAGS) -o $@ $(OBJECTS)
hellorect.o: hellorect.cpp
$(CXX) -c -o $@ $<
rect.o: rect.cpp
$(CXX) -c -o $@ $<
clean:
rm $(OBJECTS) hellorect
上面这段makefile的语法是没问题的,但是如果你采用一些“笨办法”将其复制进linux终端的新文件中,导致排版混乱后,错误就产生了,各种你想象不到的错误!
相关文章推荐
- 含有注释的SQL生成器升级
- android环境搭建
- java内存溢出和内存泄露
- iOS IQKeyBoardManager 引起的界面漂移bug 解决
- Android Studio 2.0 Beta 6 中配置强大的版本控制系统(Git篇)
- Spring Cache
- 百度地图经常崩溃的问题
- Cache缓存对象缓存对象
- 为什么你一直突破不了自己?
- 字符编码常识及问题解析
- 并发环境下mysql插入检查方案
- Android 5.0以上版本禁止锁屏与休眠
- 90、setStatusBarStyle无效问题 修改状态栏颜色 只有白色黑色可选UIStatusBarStyleLightContent
- jsonp跨域请求
- EventSource 对象用于接收服务器发送事件通知,是网页自动获取来自服务器的更新
- 二叉树:基本术语和重要性质
- Git详解之三:Git分支
- 剑指offer学习笔记【二维数组的查找】
- 关于从eclipse部署已经发布到Android studio的坑
- 三十行代码实现一个简单计算器