c++;makfile错误:makfile:5:**缺少分隔符。停止 我试图在Linux中运行我的C++(用cLIN编写)程序。当我尝试使用“make”命令在终端中编译它时,我得到以下错误: “生成文件:5:**缺少分隔符。请停止。” 我已经检查了我的makefile中是否有制表符而不是4个空格。 有人有主意吗? 谢谢
这是我的生成文件:c++;makfile错误:makfile:5:**缺少分隔符。停止 我试图在Linux中运行我的C++(用cLIN编写)程序。当我尝试使用“make”命令在终端中编译它时,我得到以下错误: “生成文件:5:**缺少分隔符。请停止。” 我已经检查了我的makefile中是否有制表符而不是4个空格。 有人有主意吗? 谢谢,linux,makefile,Linux,Makefile,这是我的生成文件: CFLAGS := -c -Wall -Weffc++ -g -std=c++11 -Iinclude LDFLAGS := -lboost_system all: StompBookClubClient g++ -pthread -o bin/StompBookClubClient bin/ConnectionHandler.o bin/Book.o bin/keyboardInputSend.o bin/socketReader.o bin/User.o $(
CFLAGS := -c -Wall -Weffc++ -g -std=c++11 -Iinclude
LDFLAGS := -lboost_system
all: StompBookClubClient
g++ -pthread -o bin/StompBookClubClient bin/ConnectionHandler.o bin/Book.o bin/keyboardInputSend.o bin/socketReader.o bin/User.o $(LDFLAGS)
StompBookClubClient: bin/StompBookClubClient bin/ConnectionHandler.o bin/Book.o bin/keyboardInputSend.o bin/socketReader.o bin/User.o
bin/Book.o: src/Stomp/Book.cpp
g++ -pthread $(CFLAGS) -o bin/Book.o src/Book.cpp
bin/ConnectionHandler.o: src/Stomp/ConnectionHandler.cpp
g++ -pthread $(CFLAGS) -o bin/ConnectionHandler.o src/ConnectionHandler.cpp
bin/keyboardInputSend.o: src/Stomp/keyboardInputSend.cpp
g++ -pthread $(CFLAGS) -o bin/keyboardInputSend.o src/keyboardInputSend.cpp
bin/socketReader.o: src/Stomp/socketReader.cpp
g++ -pthread $(CFLAGS) -o bin/socketReader.o src/socketReader.cpp
bin/StompBookClubClient.o: src/Stomp/StompBookClubClient.cpp
g++ -pthread $(CFLAGS) -o bin/StompBookClubClient.o src/StompBookClubClient.cpp
bin/User.o: src/Stomp/User.cpp
g++ -pthread $(CFLAGS) -o bin/User.o src/User.cpp
.PHONY: clean
clean:
rm -f bin/*
helloworld.o
g++ helloworld.cc -o helloworld.o;
我已经检查了我的makefile中是否有制表符而不是4个空格
再仔细检查一下。在这里粘贴的Makefile在第5行有4个空格,并且产生的错误与您看到的完全相同。如果我用一个标签替换它们,下一个错误将出现在第10行,依此类推。这不是答案,但我没有足够的点来评论和回答 除了“tab”问题外,如果规则名称后面缺少“:”(冒号),则会出现类似错误 Ex makefile:
CFLAGS := -c -Wall -Weffc++ -g -std=c++11 -Iinclude
LDFLAGS := -lboost_system
all: StompBookClubClient
g++ -pthread -o bin/StompBookClubClient bin/ConnectionHandler.o bin/Book.o bin/keyboardInputSend.o bin/socketReader.o bin/User.o $(LDFLAGS)
StompBookClubClient: bin/StompBookClubClient bin/ConnectionHandler.o bin/Book.o bin/keyboardInputSend.o bin/socketReader.o bin/User.o
bin/Book.o: src/Stomp/Book.cpp
g++ -pthread $(CFLAGS) -o bin/Book.o src/Book.cpp
bin/ConnectionHandler.o: src/Stomp/ConnectionHandler.cpp
g++ -pthread $(CFLAGS) -o bin/ConnectionHandler.o src/ConnectionHandler.cpp
bin/keyboardInputSend.o: src/Stomp/keyboardInputSend.cpp
g++ -pthread $(CFLAGS) -o bin/keyboardInputSend.o src/keyboardInputSend.cpp
bin/socketReader.o: src/Stomp/socketReader.cpp
g++ -pthread $(CFLAGS) -o bin/socketReader.o src/socketReader.cpp
bin/StompBookClubClient.o: src/Stomp/StompBookClubClient.cpp
g++ -pthread $(CFLAGS) -o bin/StompBookClubClient.o src/StompBookClubClient.cpp
bin/User.o: src/Stomp/User.cpp
g++ -pthread $(CFLAGS) -o bin/User.o src/User.cpp
.PHONY: clean
clean:
rm -f bin/*
helloworld.o
g++ helloworld.cc -o helloworld.o;
错误:
Makefile:1: *** missing separator. Stop.
解决方案:
helloworld后面的冒号。o如下图所示
helloworld.o:
g++ helloworld.cc -o helloworld.o;
如何检查是否有制表符而不是空格?某些文本编辑器在编辑器中似乎使用制表符缩进,但在文件中另存为空格。您是否使用十六进制编辑器查看了makefile以确保?另一种检查方法:大多数终端使用八个空格作为制表符,因此如果
cat
终端中的makefile行是否缩进了八个空格?使用cat-t makefile
将制表符显示为^I
(以及其他非打印字符)可能有用/有启发性。我又写了一次,注意标签,现在它开始工作了。谢谢欢迎来到堆栈溢出!这是一个关于的指南。在我的代码中,我添加了:还有和标签。不过,我也面临同样的问题