【问题标题】:makefile multiple target patterns. Stopmakefile 多个目标模式。停止
【发布时间】:2018-10-08 05:16:42
【问题描述】:

在makefile中遇到以下错误

Makefile:54: *** multiple target patterns.  Stop.

makefile的完整源代码如下

MINGW_HOME ?= C:/mingw
PRODUCTNAME ?= Jitsi
COMPANYNAME ?= jitsi.org
PRODUCTBUILDVERSION ?= 1.0.0.0
PRODUCTBUILDVERSION_COMMA ?= 1,0,0,0
TARGET_BASENAME ?= run
TARGET_DIR ?= ../../../../release/windows/tmp

ifeq ($(wildcard /bin/cygpath.*),/bin/cygpath.exe)
    target.dir := $(shell cygpath --mixed "$(TARGET_DIR)")
    cygwin.target.dir := $(shell cygpath --unix "$(TARGET_DIR)")
else
    target.dir := $(TARGET_DIR)
    cygwin.target.dir := $(TARGET_DIR)
endif

CC = $(MINGW_HOME)/bin/gcc.exe
CPPFLAGS := $(CPPFLAGS) \
    -Wall -Wreturn-type \
    -DPSAPI_VERSION=1 \
    -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 \
    -I$(target.dir) \
    -I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/win32"
LDFLAGS = -mwindows
LIBS = -ladvapi32 -lpsapi

MACHINE = $(shell $(CC) -dumpmachine)
WINDRES = $(MINGW_HOME)/bin/windres.exe
ifneq ("x$(MACHINE)","x")
ifeq ($(wildcard $(MINGW_HOME)/bin/$(MACHINE)-windres.*),$(MINGW_HOME)/bin/$(MACHINE)-windres.exe)
    WINDRES = $(MINGW_HOME)/bin/$(MACHINE)-windres.exe
endif
endif

$(cygwin.target.dir)/$(TARGET_BASENAME).exe: $(cygwin.target.dir)/config.h registry.c run.c $(cygwin.target.dir)/run.res ../setup/nls.c
    **$(CC) $(CPPFLAGS) registry.c run.c $(target.dir)/run.res ../setup/nls.c $(LDFLAGS) -o $(target.dir)/$(TARGET_BASENAME).exe $(LIBS)**
    -$(MINGW_HOME)/$(MACHINE)/bin/strip.exe $(target.dir)/$(TARGET_BASENAME).exe

.PHONY: $(cygwin.target.dir)/config.h

$(cygwin.target.dir)/config.h:
    -rm.exe -f ../../../../resources/install/windows/config.h
    echo #define PRODUCTNAME "$(PRODUCTNAME)" > $(cygwin.target.dir)/config.h
    echo #define COMPANYNAME "$(COMPANYNAME)" >> $(cygwin.target.dir)/config.h
    echo #define PRODUCTBUILDVERSION "$(PRODUCTBUILDVERSION)" >> $(cygwin.target.dir)/config.h
    echo #define PRODUCTBUILDVERSION_COMMA $(PRODUCTBUILDVERSION_COMMA) >> $(cygwin.target.dir)/config.h
    echo #define TARGET_BASENAME "$(TARGET_BASENAME)" >> $(cygwin.target.dir)/config.h
    echo #define TARGET_BASENAME_EXE "$(TARGET_BASENAME).exe" >> $(cygwin.target.dir)/config.h

$(cygwin.target.dir)/run.res: $(cygwin.target.dir)/config.h run.rc
    $(WINDRES) -I../../../../resources/install/windows -I$(target.dir) run.rc -O coff -o $(target.dir)/run.res

下面给出了第 54 行。

$(CC) $(CPPFLAGS) registry.c run.c $(target.dir)/run.res ../setup/nls.c $(LDFLAGS) -o $(target.dir)/$(TARGET_BASENAME).exe $(LIBS)

这可能是什么原因。

【问题讨论】:

  • 目标的依赖项之一可能包含:,这会混淆makesee this answer
  • @J.Borgh 是的,我已经检查过该答案,但我的情况找不到相同的答案。
  • 您确定这是正确/完整的生成文件吗?它只有 51 行,而错误在第 54 行报告。
  • 这里我没有添加注释行,你可以匹配我在下面给出的行内容。我添加了一个双星来开始和结束以脱颖而出。

标签: java eclipse makefile cmake gnu


【解决方案1】:

实际上有一个愚蠢的错误,而不是 Tab 空格,而是导致问题的空格。

【讨论】:

  • 谢谢。你说的对。选项卡有效。但不是空格。
【解决方案2】:

我发生这种情况是因为我在文件名中有一个:

具体来说,我有这个废话

./lib/libwww-perl-5.837/share/man/man3/HTTP::Daemon.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Date.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Headers.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Headers::Util.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Message.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Negotiate.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Request.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Request::Common.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Response.3pm
./lib/libwww-perl-5.837/share/man/man3/HTTP::Status.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::Authen::Ntlm.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::ConnCache.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::Debug.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::MediaTypes.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::MemberMixin.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::Protocol.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::RobotUA.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::Simple.3pm
./lib/libwww-perl-5.837/share/man/man3/LWP::UserAgent.3pm
./lib/libwww-perl-5.837/share/man/man3/Net::HTTP.3pm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多