Я пытаюсь построить проект C ++ на windows. Предоставлен MakeFile, и я должен изменять только определенные файлы внутри проекта. Мы приложили много усилий, чтобы установить GNU Make 4.3, версия на сервере Linux - 4.2.1
. Мы сталкиваемся со следующей ошибкой:
C:\Users\Parsa\Desktop\pa3>make
clang++ -std=c++1y -stdlib=libc++ -c -g -O0 -Wall -Wextra -pedantic twoDtree.cpp -o twoDtree.o
process_begin: CreateProcess(NULL, clang++ -std=c++1y -stdlib=libc++ -c -g -O0 -Wall -Wextra -pedantic twoDtree.cpp -o twoDtree.o, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [Makefile:35: twoDtree.o] Error 2
Я не внес никаких изменений. до MakeFile
. Он отлично работает на сервере Linux. Каталог правильный, мы попали в папку проекта точно так же, как я делал на Linux сервере. Все должно быть хорошо, так как мы пытались эмулировать сервер Linux, то есть мы следовали тем же шагам.
Вот MakeFile:
EXE = pa3
EXETEST = pa3test
OBJS_EXE = RGBAPixel.o lodepng.o PNG.o main.o twoDtree.o stats.o
OBJS_EXETEST = RGBAPixel.o lodepng.o PNG.o testComp.o twoDtree.o stats.o
CXX = clang++
CXXFLAGS = -std=c++1y -stdlib=libc++ -c -g -O0 -Wall -Wextra -pedantic
LD = clang++
#LDFLAGS = -std=c++1y -stdlib=libc++ -lc++abi -lpthread -lm
LDFLAGS = -std=c++1y -stdlib=libc++ -lpthread -lm
all : pa3 pa3test
$(EXE) : $(OBJS_EXE)
$(LD) $(OBJS_EXE) $(LDFLAGS) -o $(EXE)
$(EXETEST) : $(OBJS_EXETEST)
$(LD) $(OBJS_EXETEST) $(LDFLAGS) -o $(EXETEST)
#object files
RGBAPixel.o : cs221util/RGBAPixel.cpp cs221util/RGBAPixel.h
$(CXX) $(CXXFLAGS) cs221util/RGBAPixel.cpp -o $@
PNG.o : cs221util/PNG.cpp cs221util/PNG.h cs221util/RGBAPixel.h cs221util/lodepng/lodepng.h
$(CXX) $(CXXFLAGS) cs221util/PNG.cpp -o $@
lodepng.o : cs221util/lodepng/lodepng.cpp cs221util/lodepng/lodepng.h
$(CXX) $(CXXFLAGS) cs221util/lodepng/lodepng.cpp -o $@
stats.o : stats.h stats.cpp cs221util/RGBAPixel.h cs221util/PNG.h
$(CXX) $(CXXFLAGS) stats.cpp -o $@
twoDtree.o : twoDtree.h twoDtree.cpp stats.h cs221util/PNG.h cs221util/RGBAPixel.h
$(CXX) $(CXXFLAGS) twoDtree.cpp -o $@
main.o : main.cpp cs221util/PNG.h cs221util/RGBAPixel.h twoDtree.h
$(CXX) $(CXXFLAGS) main.cpp -o main.o
testComp.o : testComp.cpp cs221util/PNG.h cs221util/RGBAPixel.h twoDtree.h
$(CXX) $(CXXFLAGS) testComp.cpp -o testComp.o
clean :
-rm -f *.o $(EXE) $(EXETEST)
ПРИМЕЧАНИЕ: Если мы удаляем файлы .o на сервере linux. Они восстанавливаются при изготовлении. Мы попытались удалить все файлы .o на windows, но в итоге мы получили ту же ошибку, единственное изменение: make: *** [MakeFile:35: pa3] Error 2