Cygwin make error : *** target pattern contains no `%'

后端 未结 11 1376
旧巷少年郎
旧巷少年郎 2020-12-08 07:07

I got this error while (re)building, using cygwin make.exe version :3.81.

Error : *** target pattern contains no `%\'.
相关标签:
11条回答
  • 2020-12-08 07:25

    This error is due to a presence of a ":". Therefore it no longer supports windows paths. You need to download version 3.80 and replace the make.exe in the \bin directory.

    Apparently it needs cygintl12.dll too.

    0 讨论(0)
  • 2020-12-08 07:31
    • rollback to make 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
    • install libintl2 from cygwin setup for the required cygintl-2.dll

    0 讨论(0)
  • 2020-12-08 07:32

    I got the same error when trying to build a project on Linux or OSX, that was previously built on a Windows machine and had some .o.d files hanging around in the output folder.

    Once I manually deleted the .o.d files the problem was resolved. Apparently the "Clean" command of my IDE (CodeLite in this case) wasn't deleting the .o.d files.

    0 讨论(0)
  • 2020-12-08 07:32

    I was getting this error because I didn't have a Tab (\t) character at the beginning of my commands. I had expandtab in my vim set so it was replacing a tab character with 4 spaces. When I turned that off and changed spaces to a tab it was fixed

    0 讨论(0)
  • 2020-12-08 07:36

    I had the target pattern contains no '%' error while building with the Android NDK using cygwin.

    I found the following link helpful:

    Errors Generated by Make

    • ‘missing target pattern. Stop.’
    • ‘multiple target patterns. Stop.’
    • ‘target pattern contains no `%'. Stop.’
    • ‘mixed implicit and static pattern rules. Stop.’

    These are generated for malformed static pattern rules. The first means there’s no pattern in the target section of the rule; the second means there are multiple patterns in the target section; the third means the target doesn’t contain a pattern character (%); and the fourth means that all three parts of the static pattern rule contain pattern characters (%)–only the first two parts should. If you see these errors and you aren’t trying to create a static pattern rule, check the value of any variables in your target and prerequisite lists to be sure they do not contain colons. See Syntax of Static Pattern Rules.

    And so, my solution included changing my system variables from Windows format to Unix format like so:

    • Instead of C:\Android\android-ndk-r10c, I used /cygdrive/c/Android/android-ndk-r10c for the NDK path.

    Similarly, I changed the NDK project path to /cygdrive/c/Android/project/src/main/jni.

    0 讨论(0)
提交回复
热议问题