题
我得到了这个错误,而(重新)建设,使用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就完成了。