使用GnuWin32出现错误:make:***没有规则可以使目标server.o成为目标g ++。exe。停止

问题描述 投票:0回答:1

我的操作系统是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
c++ windows makefile
1个回答
0
投票

在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

这将声明具有相关性appserver.og++.exe-oserverserver.o的目标-lstdc++,所有这些都将在当前目录中搜索。而且,目标不包括任何步骤。

要解决此问题,请删除反斜杠,仅在为了方便阅读/方便而想将一行换行而不实际将其解析为换行符时才使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.