我正在尝试在Linux中运行我的C++(用clion编写)程序。当我尝试使用“make”命令在终端中编译它时,我得到了这样的错误:“makefile:5:***缺少分隔符。stop.”我已经检查了在我的makefile中有制表符而不是4个空格。有人有主意吗?谢啦!
这是我的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/*
我已经检查了在我的makefile中有制表符而不是4个空格。
再仔细检查一下。贴在这里的Makefile在第5行有4个空格,它产生的错误与您看到的完全一致。如果我用一个选项卡替换它们,下一个错误将发生在第10行,依此类推。
这不是一个答案,但我没有足够的意见,因此作答。
除了“tab”问题外,如果在规则名称后面缺少“:”(冒号),也会出现类似的错误。
Ex生成文件:
helloworld.o
g++ helloworld.cc -o helloworld.o;
错误:
Makefile:1: *** missing separator. Stop.
解决方案:helloworld.o后面的冒号如下所示
helloworld.o:
g++ helloworld.cc -o helloworld.o;