【问题标题】:Does cmake searches for gcc in %PATH%?cmake 是否在 %PATH% 中搜索 gcc?
【发布时间】:2017-09-13 10:05:02
【问题描述】:

我希望能够在 32 位和 64 位两种编译器之间快速切换。不知道只是在PATH中添加正确的bin目录就足够了,还是必须使用CC和CXX?

这是一个somewhat related question,它是关于我如何在 PATH 中添加和删除编译器的。

【问题讨论】:

  • 答案是肯定的。您是否遇到过这种方法的任何问题?
  • @Florian sorta。它开始为 VS2017 构建,对我来说它一直在崩溃。很惊讶它找到了它,它甚至不在路径中。不过,这是一个不同的故事,谢谢。

标签: cmake


【解决方案1】:

把我的评论变成答案

简短的回答是,是的,CMake 会在您的 PATH 环境中找到编译器。

长答案是

  1. 它会查看您指定的生成器/构建环境(例如,Visual Studio 生成器也在 Windows 注册表中搜索安装路径)
  2. 它将检查您是否特别指定,例如CMAKE_CXX_COMPILER CMake 变量或 CXX 环境变量
  3. 它尝试按以下顺序调用编译器(假设其中之一位于PATH 环境中):

    CC [TOOLCHAIN_PREFIX]c++ [TOOLCHAIN_PREFIX]g++ aCC cl bcc xlC clang++
    

参考文献

【讨论】:

  • 我删除了 VS2017,它现在​​给了我一个与此类似的错误:stackoverflow.com/questions/35869564/cmake-on-windows。不同的是,我的控制台可以找到 gcc,但 cmake 没有看到它?这可能是因为我在调用其余部分之前在控制台中设置了 PATH,而 cmake 只能看到系统范围的更改吗?
  • 是的,我一直在删除 CMakeCache.txt 和 CMakeFiles,但没有区别。
  • (我不确定你是否收到通知,以防万一)
  • @GregoryBalko 如果您使用的是 Windows,则默认为 Visual Studio/NMake 生成器。在不知道您针对的是哪个 GCC 的情况下,我只是假设添加 -G "Unix Makefiles" 可以解决您的问题。
猜你喜欢
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
相关资源
最近更新 更多