Ich versuche, meine C++ Code mit dem GNU-Compiler unter Linux mit dem folgenden MakefileFehler: boost/regex.hpp: Keine solche Datei oder das Verzeichnis
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)
zu kompilieren Wenn ich den Befehl make laufen, bekomme ich die folgenden Fehlermeldungen:
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
Die read_input.cpp Datei beginnt mit
#... // other includes
#include <boost/regex.hpp>
using namespace std;
namespace xxx
{
//some code here
}
Der Bibliothekspfad „/ p ath-to-boost/boost_1_53_0/stage/lib/"enthält die Dateien libboost_regex.a, libboost_regex.so und libboost_regex.so.1.53.0.
Ich verstehe nicht, warum der Compiler die Bibliotheksdateien nicht findet. Hat jemand irgendwelche Ideen, warum es nicht funktioniert und wie man es repariert?
Vielen Dank im Voraus.
Mai Schub verpasst werden include? – P0W
Ja, du hast Recht. Ich war verwirrt, weil ich den Code mit dem gleichen Makefile zuvor auf einem anderen Computer kompiliert hatte, also war mir nicht klar, warum es nicht funktionierte. Wie auch immer, es funktioniert jetzt. – user3244013