linux - 制作 : nothing can be done for all

标签 linux windows ubuntu makefile

我正在尝试从我的命令行使用下面的 makefile 运行 make。然后我收到以下错误 make: nothing can be done for all。 makefile 的内容如下。

GENERATED_FILES = \
    dw.js/dw-2.0.js \
    www/static/css/datawrapper.css \
    www/static/css/chart.base.css

all: $(GENERATED_FILES)

clean:
    rm -f -- $(GENERATED_FILES)

dw.js/dw-2.0.js: dw.js/src/*.js
    cd dw.js
    grunt

assets: www/static/css/datawrapper.css www/static/css/chart.base.css

# www/static/js/dw-2.0.js: dw.js/dw-2.0.js
#   @cp dw.js/dw-2.0.js www/static/js/

# www/static/js/dw-2.0.min.js: dw.js/dw-2.0.js
#   @php -r "require 'vendor/autoload.php'; file_put_contents('www/static/js/dw-2.0.min.js', \JShrink\Minifier::minify(file_get_contents('dw.js/dw-2.0.js')));"

messages:
    scripts/update-messages.sh

www/static/css/datawrapper.css: assets/styles/datawrapper/* assets/styles/datawrapper/**/*
    node_modules/.bin/lessc assets/styles/datawrapper/main.less > $@

www/static/css/chart.base.css: assets/styles/chart.base/*
    node_modules/.bin/lessc assets/styles/chart.base/main.less > $@`

最佳答案

最有可能发生的情况是您尝试生成的文件已经存在。为什么这会阻止 make 命令构建您的文件?这是因为 make 解释 makefile 的方式。

让我们看看下面的通用 makefile 规则并手动解释它。

target: prerequistes
    actions

make target 将检查文件 target 的时间戳并将其与所有必备文件的时间戳进行比较。如果任何先决条件的时间戳比目标更新(即其中一个先决条件“更年轻”),则将执行 actions

因此,如果先决条件已经完成并且所有具有相同时间戳的target,那么make将写入消息make: 不能为target

做任何事

因此,您可以做两件事。最好的办法是确保您尝试生成的文件不存在。另一种解决方案是运行 make -B target 这将导致 make to always make your targets

Please read this question too for reference

关于linux - 制作 : nothing can be done for all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232870/

相关文章:

regex - 查找目录中具有特定单词的 xml 文件的数量

linux - 在 linux 上安装 Qt,找不到 -lGL

python - 如何为我的 test.py 制作 Windows 独立安装程序

PHP Symfony - 连接已重置 (Windows)

linux - Linux 上的 Visual Studio Code DDEV 和自动重新加载

c++ - libxrandr 库 : how to change properties of connected monitors?

python - 这是在 Python 中运行 shell 脚本的正确方法吗?

c++ - 如何在 Windows 上将 GoogleTest 变量 GTEST_LIBRARY GTEST_INCLUDE_DIR 和 GTEST_MAIN_LIBRARY 设置为 CMake?

java - eclipse.ini中参数XXMaxPermSize、vmargs、Xms和Xms的作用,它们有什么作用

c - 如何使用 libxcb-xinput 注册事件