如何解决这个简单的Makefile错误?

时间:2015-09-04 01:27:37

标签: c++ shell makefile

我试图创建一个非常简单的makefile来构建我的C ++代码以及创建.txt文件

我希望将可执行文件和.txt文件放在名为" build"的目录中。为了做到这一点,我需要确保构建目录不存在。我收到语法错误,似乎无法解决问题。这可能是一个非常明显的错误,因为我是创建makefile的新手。

有人可以帮忙吗?

错误:

/bin/sh: -c: line 1: syntax error: unexpected end of file make: *** [mlib] Error 2

Makefile:

all:
    if [ ! -d build ]; then
        mkdir build
    fi
    g++ src/*.cpp -o build/mlb
    touch build/mlib_history.txt

2 个答案:

答案 0 :(得分:1)

我实际上是通过简单地将makefile更改为:

来修复它

所有

if [ ! -d build ]; then mkdir build; fi
#"mkdir build" moved onto the above line
#somehow this fixed it...?
g++ src/*.cpp -o build/mlb
touch build/mlib_history.txt

答案 1 :(得分:0)

这是一个稍好的解决方案......

.PHONY: all

BUILD_DIR := build

all:
    [ ! -d $(BUILD_DIR) ] && mkdir $(BUILD_DIR)
    g++ src/*.cpp -o $(BUILD_DIR)/mlb
    touch $(BUILD_DIR)/mlib_history.txt