将Boost与Makefile/Mississ Syparator一起使用

Using Boost with Makefile/Missing Separator

本文关键字:Syparator 一起 Mississ Boost Makefile      更新时间:2023-10-16

我是制作文件和 Boost的全新,我正在尝试遵循本教程,特别是makefile4。

我只有两个源文件,即main.cpp所在的S1.cppGaussQuadrature.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

我有相同的错误。

除了解决此错误之外,什么是在makefile中包含Boost目录的正确方法,或者有什么办法将其完全包括在内?谢谢!

它与Boost无关。makefiles需要标签

http://www.delorie.com/djgpp/v2faq/faq22_17.html

与大多数其他DO不同,在规则中命令开始时接受任何空格字符的程序不同,GNU坚持认为,每条这样的行都以一个选项卡开头。(大多数其他Unix制造程序也需要选项卡,并且POSIX标准也需要它。)确保在错误消息中打印的数字(在这种情况下为第10行)以一个选项卡开头。