【问题标题】:force cmake specific sh path强制 cmake 特定的 sh 路径
【发布时间】:2017-03-27 14:54:02
【问题描述】:

由于用于嵌入式开发的多个工具链,我的路径中有不兼容的 sh.exe 和 make.exe。我想强制使用不在我路径中的那个。

cmake 使用了错误的 make(路径中的那个)来检查 GCC 功能,我可以使用 SET(CMAKE_MAKE_PROGRAM .../make.exe) 强制使用正确的 make

如何为 sh.exe 做同样的事情?

【问题讨论】:

  • 我们谈论的是add_custom_command() 还是execute_process()?一般来说,CMake 不直接使用sh.exe(参见例如here)。或者你能说明你对sh.exe 有什么问题吗?错误信息?
  • @Florian 实际上我使用arm-none-eabi-gcccmake 尝试通过编译示例程序来检查编译器。如果 atmelStudio 的 sh 在路径中,则构建失败:/usr/bin/sh: -c: line 3: syntax error: unexpected end of file 如果不在路径中,则编译成功
  • 强制make 程序总是很棘手。您能否也添加您的cmake 命令行调用?否则我认为你可以利用/修改我描述的CMAKE_IGNORE_PATH 方法here
  • @Florian 感谢您的回复,CMAKE_IGNORE_PATH 绝对是一个好提议。关于CMAKE_MAKE_PROGRAM 我已经删除了它,因为它引起了一些问题。仅供参考:我在 Windows 上运行并使用 sh 构建的效果不如默认的 cmd。我犯了第一个错误,没有错误描述

标签: cmake cross-compiling


【解决方案1】:

把我的评论变成答案

要使 CMake 忽略路径中的工具链,您可以使用 CMAKE_IGNORE_PATH 类似的东西:

cmake -DCMAKE_IGNORE_PATH="/path/to/your/toolchain/bin" ..

请注意,路径必须与路径的字符串完全匹配(在 CMake 格式中,带有 / 斜杠并且区分大小写)。

更多详情:Environment variable used by CMake to detect Visual C++ compiler tools for Ninja

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2014-12-02
    相关资源
    最近更新 更多