我的操作系统是Windows8.1 x64不知道我在这里缺少sever.cpp是否存在,如果我运行此cmd:“ g ++。exe -c server.cpp -o server.o”它起作用了...我正在从git-bash窗口运行所有cmds
这是一个简单的Makefile:
# Specify compiler
CC=g++.exe
# Specify linker
LINK=g++.exe
# Build all target
.PHONY : all
all : app
# Link the object files and dependent libraries into a binary
app : server.o \
$(LINK) -o server server.o -lstdc++
# Compile the source files into object files
server.o : server.cpp \
$(CC) -c server.cpp -o server.o
在makefile中,反斜杠字符用作转义符,使您可以将makefile的单行拆分为文件中的多个物理行。因此,您的makefile等效于:
# Specify compiler
CC=g++.exe
# Specify linker
LINK=g++.exe
# Build all target
.PHONY : all
all : app
# Link the object files and dependent libraries into a binary
app : server.o $(LINK) -o server server.o -lstdc++
# Compile the source files into object files
server.o : server.cpp $(CC) -c server.cpp -o server.o
或已解析变量:
# Link the object files and dependent libraries into a binary
app : server.o g++.exe -o server server.o -lstdc++
# Compile the source files into object files
server.o : server.cpp g++.exe -c server.cpp -o server.o
这将声明具有相关性app
,server.o
,g++.exe
,-o
,server
和server.o
的目标-lstdc++
,所有这些都将在当前目录中搜索。而且,目标不包括任何步骤。
要解决此问题,请删除反斜杠,仅在为了方便阅读/方便而想将一行换行而不实际将其解析为换行符时才使用它们。