Fehler beim Ausführen der .sh-Datei unter Windows 8 mit Cygwin


1

Ich bin Anfänger des Cygwin-Terminals. Ich versuche, die * .sh-Datei unter Windows 8 mit dem Befehl auszuführen ./file_name.sh, aber es wird der unten gezeigte Fehler angezeigt.

Vorgefertigte externe Geräte verwenden

FEHLER: Das Programm 'make' kann nicht gefunden werden. Bitte installieren Sie Cygwin make package oder definieren Sie die GNUMAKE-Variable, um darauf zu verweisen.

Ich habe Cygwin auf dem F-Laufwerk installiert. Ich habe diesen Fehler gegoogelt und den Variablenpfad unter ComputereigenschaftenErweiterte SystemeigenschaftenUmgebungsvariablenPathBearbeiten festgelegt. Der Variablenpfad ;F:\cygwin\binfunktioniert aber nicht. Wie kann ich dieses Problem lösen?

Hier ist mein file_name.shDrehbuch:

# set params
NDK_ROOT=/cygdrive/f/Android/android-ndk-r9b
COCOS2DX_ROOT=/cygdrive/f/Android/cocos2d-2.0-rc2-x-2.0.1
GAME_ROOT=$COCOS2DX_ROOT/molatx
GAME_ANDROID_ROOT=$GAME_ROOT/proj.android
RESOURCE_ROOT=$GAME_ROOT/Resources

buildexternalsfromsource=

usage(){
cat << EOF
usage: $0 [options]

Build C/C++ native code using Android NDK

OPTIONS:
   -s   Build externals from source
   -h   this help
EOF
}

while getopts "s" OPTION; do
    case "$OPTION" in
        s)
            buildexternalsfromsource=1
            ;;
        h)
            usage
            exit 0
            ;;
    esac
done

# make sure assets is exist
if [ -d $GAME_ANDROID_ROOT/assets ]; then
    rm -rf $GAME_ANDROID_ROOT/assets
fi

mkdir $GAME_ANDROID_ROOT/assets

# copy resources
for file in $RESOURCE_ROOT/*
do
    if [ -d "$file" ]; then
        cp -rf "$file" $GAME_ANDROID_ROOT/assets
    fi

    if [ -f "$file" ]; then
        cp "$file" $GAME_ANDROID_ROOT/assets
    fi
done

# copy icons (if they exist)
file=$GAME_ANDROID_ROOT/assets/Icon-72.png
if [ -f "$file" ]; then
    cp $file $GAME_ANDROID_ROOT/res/drawable-hdpi/icon.png
fi
file=$GAME_ANDROID_ROOT/assets/Icon-48.png
if [ -f "$file" ]; then
    cp $file $GAME_ANDROID_ROOT/res/drawable-mdpi/icon.png
fi
file=$GAME_ANDROID_ROOT/assets/Icon-32.png
if [ -f "$file" ]; then
    cp $file $GAME_ANDROID_ROOT/res/drawable-ldpi/icon.png
fi


if [[ $buildexternalsfromsource ]]; then
    echo "Building external dependencies from source"
    $NDK_ROOT/ndk-build -C $GAME_ANDROID_ROOT \
        NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source
else
    echo "Using prebuilt externals"
    $NDK_ROOT/ndk-build -C $GAME_ANDROID_ROOT \
        NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt
fi

Willkommen bei Super User! Bitte stellen Sie vor dem Posten sicher, dass Ihre Frage lesbar ist. Verwenden Sie die Formatierung, um Codeblöcke oder Nachrichten in Anführungszeichen anzugeben. Schreibe ein Großbuchstaben, markiere Labels aus UI-Nachrichten und stelle sicher, dass sie bereits mit der UI übereinstimmen. Ich habe deine Frage für dich verbessert.
Gronostaj

Dies sieht nicht so aus, als wäre es Ihr Problem, aber Sie möchten sich vielleicht angewöhnen, alle Variablenreferenzen in Anführungszeichen zu setzen. zB "$file", "$GAME_ANDROID_ROOT", "$NDK_ROOT", und "$COCOS2DX_ROOT". Übrigens brauchen Sie die geschweiften Klammern nur, wenn Sie der Variablen einen Buchstaben, eine Ziffer oder einen Doppelpunkt folgen, so könnte man sagen NDK_MODULE_PATH="${COCOS2DX_ROOT}:$COCOS2DX_ROOT/cocos2dx/platform/third_party/android/source".
Scott

Antworten:


1

Es sieht so aus, als ob "make" -Paket für Cygwin nicht installiert ist. Versuchen Sie, es zu installieren, und führen Sie dann Ihr Skript aus. Schauen Sie sich zum Beispiel cyg-apt an.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.