【问题标题】:How can i solve 'cl' is not recognized as an internal or external command issue?如何解决“cl”未被识别为内部或外部命令问题?
【发布时间】:2019-05-31 00:13:55
【问题描述】:

我正在尝试使用 Msys 构建用于提升的库。我指的是这个链接https://github.com/moritz-wundke/Boost-for-Android/blob/master/README.md 在执行此过程时,我遇到了错误

Building Boost.Build 引擎 'cl' 未被识别为内部或>外部命令、可运行程序或批处理文件。

我该如何解决这个问题?

【问题讨论】:

  • 您能补充更多细节吗?更多输出,你正在执行的脚本等等......
  • 我使用的脚本是 build-android.sh。该脚本以及其他文件存在于我在上面共享的链接中。我正在使用 MSYS 在 Windows PC 中运行它。错误:- 执行 boost bootstrapBuilding Boost.Build engine'cl' 未被识别为内部或外部命令、可运行程序或批处理文件。未能构建 Boost.Build 引擎。请查阅 bootstrap.log 以获得进一步诊断。 cl.exe 似乎来自 MSVC,但我没有使用 MSVC。有些代码必须在脚本中编辑,这样它就不会使用 cl.exe,而是应该使用 mingW 或 ndk 提供的任何东西(我不确定)
  • 尝试设置CXX=clang++。我假设您从 MSys 环境执行 .sh 脚本。此外,在提供额外(重要)细节时,不要通过 cmets 进行,而是编辑问题。
  • 嗨 @CristiFati 我能够解决 cl.exe 问题,但之后我收到此错误:C:\Users\503092106\Downloads\Boost-for-Android-master\Boost -for-Android-master\boost_1_69_0\boost-build.jam:17:在模块范围内错误:无法为 armeabi-v7a 构建 android 的 boost!
  • 嗯,只是我无法分辨它是什么。看起来像是 Boost 使用的自定义构建系统中的东西。增加其输出(-v 参数)。但这似乎是一个不同的问题。

标签: boost mingw msys


【解决方案1】:

可能 Boost 构建系统发现它在 Win 上运行并尝试使用 VStudio 编译器(cl.exe) 默认情况下。由于其父目录不在 ${PATH} 中,因此调用尝试失败并出现上述错误。

明确地“告诉”构建系统(make)使用什么编译器。这通常通过在运行 make 之前设置环境变量 CXX ([GNU]: Variables Used by Implicit Rules) 来完成:

CXX=clang++

为避免任何进一步的意外,请确保 clang++ 的目录也存在于 ${PATH} 中。

【讨论】:

  • 这是否回答了您与编译器相关的问题?关于你遇到的另一个问题,你能解决它吗?或者你问了一个不同的问题?
猜你喜欢
  • 2012-02-06
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多