Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;makfile错误:makfile:5:**缺少分隔符。停止 我试图在Linux中运行我的C++(用cLIN编写)程序。当我尝试使用“make”命令在终端中编译它时,我得到以下错误: “生成文件:5:**缺少分隔符。请停止。” 我已经检查了我的makefile中是否有制表符而不是4个空格。 有人有主意吗? 谢谢_Linux_Makefile - Fatal编程技术网

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
(以及其他非打印字符)可能有用/有启发性。我又写了一次,注意标签,现在它开始工作了。谢谢欢迎来到堆栈溢出!这是一个关于的指南。在我的代码中,我添加了:还有和标签。不过,我也面临同样的问题