【问题标题】:cmake was unable to find a build program corresponding to Unix Makefilescmake 找不到与 Unix Makefiles 对应的构建程序
【发布时间】:2017-02-25 00:08:47
【问题描述】:

我正在尝试按照网站中的说明安装 openCV contrib 模块,如下所示:

cd opencv\platfroms\
mkdir build_android_arm
cd build_android_arm
cmake -G "Unix Makefiles" -  
DCMAKE_TOOLCHAIN_FILE=..\android\android.toolchain.cmake ..\..
make

我面临的问题是,当我尝试运行上述命令时,我在 cmd 中收到一条消息,如下图所示

我安装了 MinGW、CMake 和 GnuWin,但我没有 Visual Studio,我正在使用 Windows 操作系统,但我不知道为什么 cmd 中的错误消息提到 Unix Makefiles

请您帮忙解决我的问题

错误信息

更新

更新2-: 我删除了“android_arm”中的内容并运行了命令,我在下面的图片中得到了消息

**更新3*: 如图所示,我还将 ANDROID_NDK 添加到系统变量中

但我仍然收到如下所示的错误

【问题讨论】:

    标签: opencv cmd cmake cygwin gnu-make


    【解决方案1】:

    它不起作用,因为在 Windows 上(如果不运行新的 Ubuntu bash)你不能将 CMake“Unix Makefiles”作为a generator

    请改用-G "MinGW Makefiles"

    更多详情请参见android.toolchain.cmake 文件本身:

    #  Usage Linux:
    #   $ export ANDROID_NDK=/absolute/path/to/the/android-ndk
    #   $ mkdir build && cd build
    #   $ cmake -DCMAKE_TOOLCHAIN_FILE=path/to/the/android.toolchain.cmake ..
    #   $ make -j8
    #
    #  Usage Windows:
    #     You need native port of make to build your project.
    #     Android NDK r7 (and newer) already has make.exe on board.
    #     For older NDK you have to install it separately.
    #     For example, this one: http://gnuwin32.sourceforge.net/packages/make.htm
    #
    #   $ SET ANDROID_NDK=C:\absolute\path\to\the\android-ndk
    #   $ mkdir build && cd build
    #   $ cmake.exe -G"MinGW Makefiles"
    #       -DCMAKE_TOOLCHAIN_FILE=path\to\the\android.toolchain.cmake
    #       -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%\prebuilt\windows\bin\make.exe" ..
    #   $ cmake.exe --build .
    

    【讨论】:

    • 请参阅上面的更新部分..使用您提供的答案后,我在 cmd 中收到一条错误消息,如更新部分所示
    • @user2121 您必须在重试之前删除build_android_arm 目录。 CMake 不允许在开始生成构建环境后切换生成器。
    • @user2121 MinGW GCC 包不包括 make。我的回答中引用的自述文件建议使用 Android NDK 附带的 make 程序。
    • 我运行了您的答案中所述的命令,但我仍然收到错误,我不知道如何解决它..请查看上面的 update3 部分
    • @user2121 检查您的安装(CMake、MinGW、NDK 等)与小型 hello world 示例(另请参见例如 here)。对我来说,问题是,你的新问题的可能原因可能很多(我认为 - 像 NDK/MinGW - 已经在其他地方讨论过)。请参阅例如here 为什么我有点不愿意继续回答一个不断变化的问题。
    猜你喜欢
    • 2021-03-31
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多