错误:boost / regex.hpp:没有这样的文件或目录

时间:2017-01-31 12:45:37

标签: regex boost

我正在尝试使用以下Makefile

在Linux下使用GNU编译器编译我的C ++代码
CXX=gcc  #icpc
RM=rm -f
CPPFLAGS=-g -O3 -fopenmp
CFLAGS= -Wall -c
OPENMP   = -fopenmp
BIN = theVeecode_$(CXX)

LIBS= -L /path-to-boost/boost_1_53_0/stage/lib/ -lboost_regex

CPPSRCS=mathtools.cpp time_.cpp read_input.cpp vee_ao_calc.cpp vee_mo_calc.cpp write_int2e.cpp memory_check.cpp
OBJS=$(subst .cpp,.o,$(CPPSRCS))
OBJS+=$(COBJS)

all: $(BIN)

$(BIN): $(OBJS)
        $(CXX) main.cpp $(OPENMP) -o $(BIN) $(OBJS) $(LIBS)

clean:
        $(RM) $(OBJS) $(BIN)

dist-clean: clean
        $(RM) $(BIN)

当我运行make命令时,我收到以下错误消息:

gcc    -g -O3 -fopenmp   -c -o read_input.o read_input.cpp
read_input.cpp:9:27: error: boost/regex.hpp: No such file or directory
read_input.cpp: In function 'void input::read_n_occ()':
read_input.cpp:95: error: 'boost' has not been declared
read_input.cpp:95: error: 'regex_search' was not declared in this scope
make: *** [read_input.o] Error 1

read_input.cpp文件以

开头
#... // other includes
#include <boost/regex.hpp>
using namespace std;

namespace xxx
{
 //some code here  
}

库路径“/ path-to-boost / boost_1_53_0 / stage / lib /”包含文件 libboost_regex.a,libboost_regex.so和libboost_regex.so.1.53.0。

我不明白为什么编译器找不到库文件。有没有人有任何想法为什么它不工作以及如何解决它?

提前致谢。

1 个答案:

答案 0 :(得分:0)

事实证明,问题出在Makefile中。更具体地说,在使用boost编译.cpp文件期间,未包含boost库的路径。通过在编译步骤中显式添加库来修复它:

tssub.cpp

最后,Makefile如下:

%.o: %.cpp $(DEPS)
        $(CXX) -c -o $@ $< $(CPPFLAGS) $(LIBS)