编译后得到错误127

时间:2015-07-08 18:37:08

标签: makefile gnu-make

在学习了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,这似乎输出了许多错误的错误,但我没有看到错误的定义,或类似的问题。

1 个答案:

答案 0 :(得分:2)

$(shell ./$(EXEC)不正确。

让make运行可执行文件,然后用可执行文件的输出替换$(shell ./$(EXEC),然后尝试将其作为配方中的命令运行。

你只想要

exec: $(EXEC)
    ./$<