错误:boost/regex.hpp:没有这样的文件或目录 我试图用Linux下的GNU编译器使用下面的MaFixFix/P>编译我的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)

错误:boost/regex.hpp:没有这样的文件或目录 我试图用Linux下的GNU编译器使用下面的MaFixFix/P>编译我的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),regex,boost,Regex,Boost,运行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 b

运行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  
}
#…//其他包括
#包括
使用名称空间std;
名称空间xxx
{
//这里有一些代码
}
库路径“/path to boost/boost\u 1\u 53\u 0/stage/lib/”包含这些文件 libboost_regex.a、libboost_regex.so和libboost_regex.so.1.53.0

我不明白为什么编译器找不到库文件。有人知道它为什么不工作以及如何修复吗


提前感谢。

事实证明,问题出在Makefile中。更具体地说,在使用boost编译.cpp文件的过程中,不包括boost库的路径。通过在编译步骤中显式添加库修复了此问题:

%.o: %.cpp $(DEPS)
        $(CXX) -c -o $@ $< $(CPPFLAGS) $(LIBS)
%.o:%.cpp$(DEPS)
$(CXX)-c-o$@$<$(CPPFLAGS)$(LIBS)
最后,Makefile如下所示:

CXX=gcc  #icpc
RM=rm -f
CPPFLAGS=-g -O3 -fopenmp
OPENMP   = -fopenmp
BIN = theVeecode_$(CXX)

LIBS= -I /path-to-boost/boost_1_53_0/
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))
DEPS=Vector3.h  mathtools.h  memory_check.h  read_input.h  time_.h  vee_ao_calc.h  vee_mo_calc.h  write_int2e.h

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

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

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

dist-clean: clean
        $(RM) $(BIN)
CXX=gcc#icpc
RM=RM-f
CPPFLAGS=-g-O3-fopenmp
OPENMP=-fopenmp
BIN=车辆代码(CXX)
LIBS=-I/boost路径/boost\u 1\u 53\u 0/
LIBS+=-L/boost/boost\u 1\u 53\u 0/stage/lib/-lboost\u 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、$(cppsrc))
DEPS=Vector3.h mathtools.h memory_check.h read_input.h time_uu.h vee_ao_calc.h vee_mo_calc.h write_int2e.h
%.o:%.cpp$(DEPS)
$(CXX)-c-o$@$<$(CPPFLAGS)$(LIBS)
$(BIN):$(OBJS)
$(CXX)main.cpp$(OPENMP)-o$(BIN)$(OBJS)$(LIBS)
清洁:
$(RM)$(OBJS)$(BIN)
清洁区:清洁区
$(RM)$(BIN)

可能会错过boost include目录?是的,你说得对。我很困惑,因为我以前在另一台机器上用相同的Makefile编译了代码,所以我不清楚为什么它不工作。不管怎样,它现在起作用了。