Machen: Keine Regel, um eine header-Datei?
Ich versuche, ein Projekt mit einer Bibliothek namens "BigInt" enthält. Meine Datei-Struktur ist:
/Users/wen/Projects/challenge/fibonacci3/fibonacci3.cpp
/Users/wen/Projects/challenge/fibonacci3/Makefile
/Users/wen/Projects/include/bigint/<.cc files and .hh files>
/Users/wen/Projects/include/bigint/Makefile
Den Fibonacci3 Makefile ist als der
LD_FLAGS =
CC_FLAGS =
# Include libraries
include /Users/wen/Projects/include/bigint/Makefile
# Build object files
%.o: %.cc %.cpp $(library-cpp)
g++ -c -o $@ $(CC_FLAGS)
# Link object files
fibonacci3: fibonacci3.o $(library-objects)
g++ -o $@ $(LD_FLAGS)
und der bigint-Makefile ist als der (verkürzten)
# Mention default target.
all:
# Implicit rule to compile C++ files. Modify to your taste.
%.o: %.cc
g++ -c -O2 -Wall -Wextra -pedantic $<
# Components of the library.
library-cpp = \
BigUnsigned.cc \
BigInteger.cc \
BigIntegerAlgorithms.cc \
BigUnsignedInABase.cc \
BigIntegerUtils.cc \
library-objects = \
BigUnsigned.o \
BigInteger.o \
BigIntegerAlgorithms.o \
BigUnsignedInABase.o \
BigIntegerUtils.o \
library-headers = \
NumberlikeArray.hh \
BigUnsigned.hh \
BigInteger.hh \
BigIntegerAlgorithms.hh \
BigUnsignedInABase.hh \
BigIntegerLibrary.hh \
jedoch make
berichtet, dass er konnte nicht finden, eine Regel für eine header Datei?
make: *** No rule to make target `NumberlikeArray.hh', needed by `BigUnsigned.o'. Stop.
[Finished in 0.0s with exit code 2]
Was ist hier passiert? Header vorhanden sein soll, nicht kompiliert, also, warum stellen Sie Fragen, für eine?
Vielen Dank im Voraus!
Lösung:
Statt, einschließlich makefile, kompilieren Sie die Quellen in meiner eigenen makefile. Es hat geklappt! Nochmals vielen Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
make
Programm erwartet alle Dateien im aktuellen Verzeichnis. Da Sie das zweite makefile in das aktuelle makefile alle Dateien relativ zum aktuellen Verzeichnis. Sie haben, um sicherzustellen, dass die Dateien in das mitgelieferte makefile enthält die richtigen Pfade.Machen diese Fehler, wenn Sie nicht finden können, eine Abhängigkeit; es wird dann versucht, zu bauen, die Abhängigkeit, aber kennt keine Regel, um diese header-Datei.
Haben Sie vielleicht vertippt der header-Datei name.
$(library-headers)
einer Abhängigkeit, irgendwo, undNumberlikeArray.hh
existiert nicht - oder zumindest nicht vorhanden ist, wo Machen Sie sucht ihn.