在学习了C ++的基础知识后,我正在尝试自学gnuMake
我正在运行Ubuntu 14.04等效(基本操作系统)
我收到错误(make run的完整输出):
g++ ./main.o -w -o test
This is a test!
/bin/sh: 1: This: not found
make: *** [exe] Error 127
我的Makefile:
CC=g++
SRC=$(shell find -name '*.cpp')
OBJS= $(SRC:.cpp=.o)
EXEC=test
FLAGS= -w
LINKS=
%.o: %.cpp
$(CC) -c $*.cpp -o $*.o
$(EXEC): $(OBJS)
$(CC) $(OBJS) $(FLAGS) $(LINKS) -o $(EXEC)
all: $(EXEC)
exe:
$(shell ./$(EXEC))
run: all exe
clean:
rm -rf *.o $(EXEC)
这是一个基本的制作教程和在github中阅读Makefile的组合
main.cpp中:
#include <iostream>
using namespace std;
int main()
{
cout << "This is a test!" << endl;
return 0;
}
非常基本,但将扩展它以帮助学习使用和扩展我的Makefile。现在我可以看到程序编译并运行,但是我在运行后得到了错误。
我搜索了Make错误127,这似乎输出了许多错误的错误,但我没有看到错误的定义,或类似的问题。
答案 0 :(得分:2)
$(shell ./$(EXEC)
不正确。
让make运行可执行文件,然后用可执行文件的输出替换$(shell ./$(EXEC)
,然后尝试将其作为配方中的命令运行。
你只想要
exec: $(EXEC)
./$<