我从官方网站下载了便携式CMake版本,并将其安装在我的主目录(~/usr
)中,因为我没有root或sudo权限。
如何在CMakeLists.txt中指定安装CMake的路径,例如~/usr/cmake-path/bin/cmake
?
注意:我不想在Linux系统上使用默认版本的CMake,因为它太旧了(版本2.6)
PS:
我知道变量CMAKE_COMMAND
可能对我的问题有用,但我不知道如何使用它!
答案 0 :(得分:4)
CMake将使用正在运行的CMake可执行文件所处的任何路径。此外,如果您在运行之间切换路径而不清除缓存,则可能会感到困惑。
所以你要做的只是从命令行运行cmake <path_to_src>
,而不是运行~/usr/cmake-path/bin/cmake <path_to_src>
。
您可能希望将别名或shell脚本添加到更有类型的路径中(因此您只需键入my_cmake <path_to_src>
或类似的东西)。
请注意,只需编辑CMakeLists.txt
即可解决此问题。虽然理论上你可以让CMake 2.6运行一个外部CMake脚本,除了从3.0可执行文件运行内部CMake脚本之外什么都不做,这只是一个肮脏的黑客攻击。只需从命令行运行正确的可执行文件,你应该没问题。
答案 1 :(得分:4)
我觉得更强大的解决方案是将您的cmake路径添加到PATH环境变量。
export PATH=~/usr/cmake-path/bin:$PATH
如果您在Ubuntu / Debian系统上,可以将此命令添加到〜/ .bashrc中,以便在每个终端会话中执行它。请注意,此更改只会影响您的帐户,您可以在没有管理员权限的情况下进行设置。
这样您只需输入cmake
即可找到所需的版本。
答案 2 :(得分:0)
最好的建议是将 cmake 安装在沙箱环境中而不是自己安装,这样可以保留整个环境,同时受益于增加的灵活性。 cmake 依赖于此存在,否则您的环境将成为“版本地狱”。
答案 3 :(得分:-3)
您在CMAKE_INSTALL_PREFIX
版本中使用标记CMake
设置安装目录,如下所示:
cmake path/to/sourcedir \
-DCMAKE_INSTALL_PREFIX=path/to/install \
不要忘记在任何CMAKE_FLAGS
之前加-D
。
如果您想在CMakeLists.txt
中添加自定义安装前缀,则可以添加以下内容:
SET(MY_INSTALL_PREFIX "/path/to/install" CACHE PATH "Prefix added to install directories")
SET(CMAKE_INSTALL_PREFIX "${MY_INSTALL_PREFIX}" CACHE INTERNAL "Prefix added to install directories" FORCE)