我得到了这个错误,而(重新)建设,使用cygwin make.exe 版本:3.81.

Error : *** target pattern contains no `%'.
有帮助吗?

解决方案

此错误是由于存在":“。因此它不再支持Windows路径。 您需要下载3.80版本并替换 \ bin 目录中的 make.exe

显然它也需要 cygintl12.dll

其他提示

  • 回退,以使3.80(Geant4)

    • cd /usr/bin
    • mv make.exe make_381.exe
    • wget http://geant4.cern.ch/support/extras/cygwin/make.exe
    • chmod +x make.exe
  • 安装 libintl2 从cygwin设置的需要 cygintl-2.dll

我尝试在Linux或OSX上构建项目时遇到了同样的错误,该项目以前是在Windows机器上构建的,并且在输出文件夹中有一些 .o.d 文件。

手动删除 .o.d 文件后,问题就解决了。显然是“干净”的我的IDE命令(本例中为CodeLite)未删除 .o.d 文件。

很可能是因为驱动器号后面存在冒号。例如,考虑

build : $(NativeHeaders)/*

如果

NativeHeaders=../../../cpp/generated

然后一切都很顺利,但

NativeHeaders=C:/dev/folder/cpp/generated

会导致错误。

我收到此错误是因为我的命令开头没有Tab(\ t)字符。我在我的vim集中有expandtab,所以它用4个空格替换了一个制表符。当我关闭它并将空格更改为选项卡时,它已被修复

我的 target pattern contains no '%' 错误,而建筑的。using cygwin。

我发现了以下链接:

错误的产生通过使

  • '失踪的目标模式。停止。'
  • '多种目标模式。停止。'
  • '目标图案没有包含`%'.停止。'
  • '混合隐含静态和模式的规则。停止。'

这些是产生于错误的静态模式的规则。首先意味着没有图案的目标部分中的规则;第二意味着有很多的模式目标的部分;第三装置的目标不含有的图案符(%);第四,意味着所有三个部分的静态模式的规则含有的图案符(%)–只有一两个部分应该的。如果你看到这些错误,你是不是试图建立一个静态模式的规则, 检查价值的任何变量的目标和先决条件清单,以确保它们不包含冒号。 看看 语法的静态模式的规则.

因此,我的解决方案包括改变我的系统变量从Windows格式Unix格式,像这样:

  • 而不是的 C:\Android\android-ndk-r10c, 我用 /cygdrive/c/Android/android-ndk-r10c 为本的道路。

同样,我改变了本项目的路径 /cygdrive/c/Android/project/src/main/jni.

在我的情况下,当我收到此错误时,我在Cygwin下使用CMake。原来,Windows版的CMake被执行了。随后,在make文件中使用了Windows路径。我通过安装程序安装了Cygwin的CMake版本并使其正常工作。

当构建目录包含“:”时,我在Linux上遇到了这个问题。通过执行mercurial checkout导致创建名为“server:port”的目录。

我必须在make文件中更改以下内容才能与Make_381兼容:
前:点击 ARDUINO_BASE_DIR = C:\ programs / arduino

现在:结果 ARDUINO_BASE_DIR = \\ programs / arduino

如果您在Windows下运行Eclipse C / C ++并从Cygwin引用文件,请尝试此操作,确保c:/ cygwin / bin或c:/ cygwin64 / bin位于Windows路径环境中首选的编译器工具之后。

实施例:     Path =; C:\ yagarto \ bin; C:\ yagarto-tools \ bin; C:\ cygwin64 \ bin;

进行更改后,退出Eclipse并重新启动以使其生效(只需重新启动Eclipse而不退出将无法解决问题。

在我的项目中,obj文件夹可能已损坏,我收到此错误。手动删除obj文件夹。然后ndk-build就完成了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top