【问题标题】:how to use cmake that installed in a non-standard path?如何使用安装在非标准路径中的 cmake?
【发布时间】:2015-12-26 01:10:06
【问题描述】:

我在 Ubuntu 14.04.3 平台上。当我编译一个项目时,它询问了我的系统中不存在的 cmake 版本 3.2。我从源代码编译了最新版本的 cmake 并将其安装到 /usr/local/bin 目录中。当我再次尝试编译项目时,它的 cmake 会检测到 /usr/bin 中的 cmake 是较低版本的。然后cmake ..

进程因版本较低的错误而中止。是否有任何内置的 cmake 变量或环境变量用于设置 cmake 的路径?

编辑: 我刚刚找到了一个 cmake 变量CMAKE_COMMAND,它应该可以满足我的需求。 但是当我将CMAKE_COMMAND = /usr/local/bin/cmake 行插入 cmakelist.txt 时,我会转到build 目录并发出/usr/local/bin/cmake .. 我明白了:

  Expected a command name, got unquoted argument with text

我在网上搜索过,但没有找到解决方案。

【问题讨论】:

  • 路径解析进程负责选择cmake可执行文件。所以你应该影响那个过程。例如,在 PATH 中交换 /usr/local/bin 和 /usr/bin,或者调用时使用完整路径:/usr/local/bin/cmake,
  • @Tsyvarev 感谢您的回复。如何交换路径?我已经尝试过export PATH=/usr/local/bin:"$PATH" 运气不好。
  • 试试看:export PATH="/usr/local/bin:$PATH"(位于stackoverflow.com/a/413498/3440745)。
  • @Tsyvarev 谢谢兄弟,它有效(一旦我读到双引号修复,但我忘记了)但我收到另一条与不同问题相关的错误消息。编译完成后会通知你的。

标签: compilation cmake environment-variables


【解决方案1】:

如果您安装了不同版本的软件或库,您可以使用stow 安装并在两者之间切换。特别是如果您想安装一个 Linux 发行版中不可用的较新版本的软件。因此,如果新版本还不稳定,您仍然可以切换到以前的版本。例如,在构建 cmake 3.2 时,您可以将前缀指定为

./configure --prefix=/usr/local/stow/cmake-3.2/

然后

cd /usr/local/stow
sudo stow cmake-3.2

如果要删除链接,可以使用以下命令

sudo stow --delete cmake-3.2

请记住 stow 不会删除文件。它只创建和删除链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多