【问题标题】:{Makefile Error} "commands commence before first target. Stop."{Makefile Error}“命令在第一个目标之前开始。停止。”
【发布时间】:2014-01-20 15:46:28
【问题描述】:

我正在尝试生成一个用于我的 Raspberry Pi 的 makefile,其目的是使用 Pi 的摄像头板通过 opencv 检测人脸。但是我一直面临以下错误:

Makefile:12: *** commands commence before first target.  Stop.

我使用以下makefile:

FLAGS = 'pkg-config --cflags opencv --libs opencv'
CC = g++
HOME = /home/pi
LDFLAGS_CAMCV = -L$(HOME)/git/robidouille/raspicam_cv -lraspicamcv
LDFLAGS_USER =-L$(HOME)/git/raspberrypi/userland/build/lib -lmmal_core -lmmal -$
LDFLAGS_FACE = -l$(HOME)/git/emobot/libfacere0.04
LDFLAGS = $(LDFLAGS_CAMCV) $(LDFLAGS_USER)  $(LDFLAGS_FACE)
INCLUDE = -I$(HOME)/git/robidouille/raspicam_cv
        $(CC) -o emobot_test.exe:  main.cpp $(INCLUDE) $(LDFLAGS)

LDFLAGS_CAMCVLDFLAGS_USER 是 raspicamcv 库所必需的,INCLUDE 是关联的头文件。在 opencv2.3 中检测人脸需要LDFLAGS_FACE,因为 Pi 目前不支持 2.4。

我确信这个错误非常微不足道,但是如果有人能提供解决方案,我将不胜感激有关 makefile 的清晰文档。

【问题讨论】:

  • 行号不是12吗? 12号线是哪条线? (就此而言,您在此处发布的最后一行有命令,这些命令位于任何目标之前。您希望这些命令与哪个目标一起使用?)
  • 你应该使用目标模式。
  • GNU make 手册文档非常清楚,当然是基础知识:gnu.org/software/make/manual/html_node/index.html

标签: c++ makefile raspberry-pi


【解决方案1】:

像这样的:

FLAGS = 'pkg-config --cflags opencv --libs opencv' CC = g++ 主页 = /home/pi LDFLAGS_CAMCV = -L$(HOME)/git/robidouille/raspicam_cv -lraspicamcv LDFLAGS_USER =-L$(HOME)/git/raspberrypi/userland/build/lib -lmmal_core -lmmal -$ LDFLAGS_FACE = -l$(HOME)/git/emobot/libfacere0.04 LDFLAGS = $(LDFLAGS_CAMCV) $(LDFLAGS_USER) $(LDFLAGS_FACE) 包括 = -I$(HOME)/git/robidouille/raspicam_cv 全部:emobot_test emobot_test: tab$(CC) -o emobot_test.exe main.cpp $(INCLUDE) $(LDFLAGS)

是文字按键,不知道如何在答案字段中插入它。

说明:
$(CC) -o emobot_test... 是应在目标调用时执行的命令。

all 是默认目标,当您不带参数运行make 时会执行该目标。

all 依赖于emobot_test 目标 emobot_test 不依赖于任何目标,但始终运行 $(CC) -o emobot_test... 以完成

【讨论】:

    【解决方案2】:

    我有同样的问题...

    我已经有了检查、测试和构建的规则……但想把它们串起来……

    我觉得很简单……

    .DEFAULT_GOAL := fullcheck
        $(MAKE) check
        $(MAKE) test
        $(MAKE) build
    

    但没有命令在第一个目标之前开始。停止。

    我省略了规则的名称。应该是这样的。

    .DEFAULT_GOAL := fullcheck
    fullcheck:
        $(MAKE) check
        $(MAKE) test
        $(MAKE) build
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多