如何在CMakeLists.txt中指定CMake的安装路径
How to specify the path where CMake is installed in the CMakeLists.txt
我从官方网站下载了便携式CMake版本,并将其安装在我的主目录(~/usr
)中,因为我没有root或sudo权限。
如何在CMakeLists.txt中指定CMake的安装路径,例如~/usr/cmake-path/bin/cmake
注意:我不想在Linux系统上使用默认版本的CMake,因为它太旧了(2.6版)
PS:
我知道变量CMAKE_COMMAND
,它可能对我的问题有用,但我不知道如何使用它!
我觉得一个更健壮的解决方案是为path环境变量预先设置cmake路径。
export PATH=~/usr/cmake-path/bin:$PATH
如果你在Ubuntu/Debian系统上,你可以将这个命令添加到~/.bashrc中,以便在每个终端会话中执行它。请注意,此更改只会影响您的帐户,您可以在没有管理员权限的情况下进行设置。
这样,您只需要键入cmake
,就会首先找到所需的版本。
CMake将使用运行中的CMake可执行文件所在的任何路径。此外,如果在不清除缓存的情况下在运行之间切换路径,可能会混淆。
因此,您所要做的只是运行~/usr/cmake-path/bin/cmake <path_to_src>
,而不是从命令行运行cmake <path_to_src>
。
您可能想在更易于键入的路径中添加一个别名或shell脚本(所以您只需要键入my_cmake <path_to_src>
或类似的内容)。
请注意,没有一种简单的方法可以通过编辑CMakeLists.txt
来解决这个问题。虽然理论上你可以让CMake 2.6运行一个外部CMake脚本,它除了运行3.0可执行文件中的内部CMake之外什么都不做,但这只是一个肮脏的破解。只需从命令行运行正确的可执行文件,就可以了。
最好的建议是在沙箱环境中安装cmake,而不是自己安装,这是在保留整个环境的同时提高了灵活性。cmake的存在依赖于此,否则您的环境将变成"版本地狱"。
在CMake
构建过程中使用标志CMAKE_INSTALL_PREFIX
设置安装目录,如下所示:
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)
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 如何使用现代 CMake 安装捆绑的接口依赖项?
- 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?
- CMake "安装" 目标及其 SO 依赖项
- 如何防止 CMake 在构建时(而不是在安装时)为共享库创建符号链接?
- 使用CMAKE构建和安装静态库
- 如何使用CMake在ubuntu上找到已安装的Boost库
- 对于可重定位的多平台安装,理想的 cmake 安装目录结构是什么?
- cmake 安装"noconfig"脚本有什么用?即。 "XXXTarget-noconfig.cmake"
- 在cmake安装后从QtCreator运行项目
- 使用 cmake 安装 protobuf 时出现问题
- CMake - 安装问题以制作软件包
- CMake - 安装第三方 dll 依赖项
- CMake 安装具有相对路径的目标
- 使用 Cmake 安装时创建动态库
- cmake 安装不会触发自定义命令
- 如何让CMAKE安装目标PDB文件
- CMAKE安装目标给定没有存档目的地
- 使用 Code::Blocks / CMake 安装 OpenCV
- Cmake:安装时执行Cmake命令