【发布时间】:2014-02-03 04:18:01
【问题描述】:
我是制作文件和Boost 的新手,我正在尝试遵循this 教程,特别是Makefile4。
我只有两个源文件,分别是S1.cpp,main.cpp所在的位置,和GaussQuadrature.h。现在,GaussQuadrature.h 也使用了Boost 文件,所以(据我所知)我必须告诉编译器Boost 所在的位置,即我的源文件所在的两个目录。我的makefile是
CC=g++
CFLAGS=-o2 -std=c++0x
DEPS = GaussQuadrature.h
OBJ = S1.o
%.o: %.cpp $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
S1: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS) S1.o -o S1 -I ../../boost_1_55_0
当我运行 make 命令时出现错误
makeS1:7: *** missing separator. Stop.
我读过这通常是由于命令缺少标签(有趣的是,当我点击“标签”时,这两个命令在上面的缩进不同),但即使我将它们更改为
%.o: %.cpp $(DEPS)
\t$(CC) -c -o $@ $< $(CFLAGS)
S1: $(OBJ)
\t$(CC) -o $@ $^ $(CFLAGS) S1.o -o S1 -I ../../boost_1_55_0
我得到同样的错误。
除了修复此错误之外,将Boost 目录包含在makefile 中的正确方法是什么,或者有没有办法完全包含它?谢谢!
【问题讨论】:
-
确保您的编辑器不使用真正的制表符。
-
Makefile 需要真正的标签。