2015-09-28 45 views
-1

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

我搜索了它在网络上却没有找到一个解决方案。

+0

这是谁负责选择cmake可执行文件的路径解析过程。所以你应该影响这个过程。例如,在PATH中交换/ usr/local/bin和/ usr/bin,或在调用:'/ usr/local/bin/cmake'时使用完整路径, – Tsyvarev

+0

@Tsyvarev 感谢您的回应。我如何交换路径?我已经试着用'export PATH =/usr/local/bin:“$ PATH”'没有运气。 – kenn

+0

尝试:'export PATH =“/ usr/local/bin:$ PATH”'(可在http://stackoverflow.com/a/413498/3440745找到)。 – Tsyvarev

回答

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 

请请记住,存放不会删除文件。它只会制作和删除链接。