Problem mit makefile
-
Hallo Leute,
hab ein Problem beim Linken von meinem Projekt, undzwar bekomme ich Fehlerermeldungen ueber undefined References. hier erstmal der makefile
# Project: netwar CPP = g++ CC = gcc OBJ = ../../build/alpha/main.o ../../build/alpha/MARS.o ../../build/alpha/ZEUS.o ../../build/alpha/Log.o LIBS = -l boost_filesystem INCS = -I"/usr/local/boost_1_34_1" BIN = ../../build/alpha/netwar RM = rm -f .PHONY: all all-before all-after clean clean-custom all: all-before ../../build/alpha/netwar all-after clean: clean-custom ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) $(CPP) $(OBJ) -o $(BIN) $(INCS) $(LIBS) ../../build/alpha/main.o: main.cpp ZEUS.hpp MARS.hpp Log.hpp $(CPP) -c main.cpp -o ../../build/alpha/main.o $(INCS) ../../build/alpha/MARS.o: MARS.cpp MARS.hpp $(CPP) -c MARS.cpp -o ../../build/alpha/MARS.o $(INCS) ../../build/alpha/ZEUS.o: ZEUS.cpp ZEUS.hpp MARS.hpp Grammar.hpp Log.hpp $(CPP) -c ZEUS.cpp -o ../../build/alpha/ZEUS.o $(INCS) ../../build/alpha/Log.o: Log.cpp $(CPP) -c Log.cpp -o ../../build/alpha/Log.o $(INCS)
Obwohl ich die boost_filesystem lib mit linke und ich Sie in den Ordner /usr/lib/ gelegt habe und er scheint die Bibliothek auch zu finden, weil ich vorher den Fehler bekam das er die Bibliothek nicht findet. Jetzt Bekomme Ich diese Fehlermeldung:
make -k
g++ ../../build/alpha/main.o ../../build/alpha/MARS.o ../../build/alpha/ZEUS.o ../../build/alpha/Log.o -o ../../build/alpha/netwar -I"/usr/local/boost_1_34_1" -l boost_filesystem
../../build/alpha/main.o: In functionmain': main.cpp:(.text+0x25d): undefined reference to
boost::filesystem::initial_path()'
...
collect2: ld returned 1 exit status
make: *** [../../build/alpha/netwar] Error 1
make: Target `all' not remade because of errors.kann mir jmd. den Fehler in meinem makefile zeigen?
-
das ist kein problem mit einem makefile sondern mit boost_filesystem. die verwendung von initial_path ist deprecated. man muss initial_pathboost::filesystem::path() verwenden. die alte version ist als inline deklariert. es ist komisch, dass sie bei dir nicht geinlined wurde. schau in die datei "boost/filesystem/operations.hpp" dort so bei zeile 520 kommt das zumindest bei meiner installation vor.
-
Danke fuer die info. Hab es jetzt zum laufen gebracht