【问题标题】:how to run .sh file on windows using cygwin?如何使用 cygwin 在 Windows 上运行 .sh 文件?
【发布时间】:2013-11-22 15:40:46
【问题描述】:

我是cygwin终端的初学者。我正在尝试使用命令./file_name.sh 在 Windows 8 上运行*.sh 文件,但它给出了下面给出的错误......

Using prebuilt externals

ERROR: Cannot find 'make' program. Please install Cygwin make package or define the GNUMAKE variable to point to it.

我已经在F 驱动器中安装了cygwin,我用谷歌搜索了这个错误并在computer properties > advance system properties > variable environment > path >edit 中设置了变量路径,变量路径是;F:\cygwin\bin 但不起作用。我该如何解决这个问题??

这是我的脚本

`# 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

【问题讨论】:

    标签: linux windows cygwin


    【解决方案1】:

    您必须使用 cygwin "setup.exe" 向导安装 make 包。 检查您的脚本正在编译什么编程语言,因为该语言的编译器也是您脚本的依赖项。

    您可能还需要安装一些库。

    【讨论】:

    • @LASIAF 除非您发布脚本副本,否则我无法告诉您。在我看来,您的脚本正在尝试编译某些东西,因此您需要拥有它正在使用的编译器以及任何依赖于正在编译的程序的库。
    • # 设置参数 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
    • # 确保资产存在 if [ -d $GAME_ANDROID_ROOT/assets ];然后 rm -rf $GAME_ANDROID_ROOT/assets fi mkdir $GAME_ANDROID_ROOT/assets # 复制 $RESOURCE_ROOT/* 中文件的资源 do if [ -d "$file" ];然后 cp -rf "$file" $GAME_ANDROID_ROOT/assets fi if [ -f "$file" ];然后 cp "$file" $GAME_ANDROID_ROOT/assets fi 完成
    • # 复制图标(如果存在) file=$GAME_ANDROID_ROOT/assets/Icon-72.png if [ -f "$file" ];然后 cp $file $GAME_ANDROID_ROOT/res/drawable-hdpi/icon.png fi file=$GAME_ANDROID_ROOT/assets/Icon-48.png if [ -f "$file" ];然后 cp $file $GAME_ANDROID_ROOT/res/drawable-mdpi/icon.png fi file=$GAME_ANDROID_ROOT/assets/Icon-32.png if [ -f "$file" ];然后 cp $file $GAME_ANDROID_ROOT/res/drawable-ldpi/icon.png fi
    • 在你的 cmd 中输入 ls 命令来检查 cmd 是否正确安装
    【解决方案2】:

    您的 Windows 系统路径与 Cygwin 路径不同。如果您使用 cygwin setup 安装所需的软件包,它们将在您的 $PATH 中可用。

    运行 cygwin setup an install: make , automake , gcc , gcc-c++

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2016-06-16
      相关资源
      最近更新 更多