🎽ubuntu 安装 cmake with cmake-gui and ccmake
2023-6-21
| 2023-6-21
0  |  0 分钟
type
status
date
Jun 21, 2023 09:35 AM
slug
summary
tags
category
icon
password
 
默认
 
 
若要 build 带 cmake-gui
 
若要带 ccmake
 
同时带 ccmake & cmake-gui
 

为什么 build Curses 界面命令和 qt-based gui 命令的格式不一样

 
解释这段 code ```./bootstrap -- -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON --qt-gui```
这段代码是在 Linux 系统中构建 CMake(包括其 Qt-based GUI)的命令,这个命令是在 CMake 的源代码根目录下执行的。我们一步步地来解析这个命令:
  1. ./bootstrap: 这个命令执行的是当前目录下的名为 bootstrap 的脚本。这个脚本是在 CMake 源代码的根目录下,它的作用是配置构建环境并生成 Makefile
  1. -: 这个符号是用来分隔 bootstrap 脚本的参数和传递给 cmake 命令的参数。
  1. DCMAKE_BUILD_TYPE:STRING=Release: 这个参数设置 CMake 构建类型为 Release。CMake 的构建类型通常有四种:DebugReleaseRelWithDebInfoMinSizeRelRelease 类型会进行优化,而且不包含调试信息。
  1. DCMAKE_BUILD_CursesDialog=ON: 这个参数启用 CMake 的 Curses 图形界面。Curses 是一个库,它提供了在文本终端中显示图形界面的功能。
  1. -qt-gui: 这个参数启用 CMake 的 Qt-based GUI。这个 GUI 是用 Qt 库编写的,它提供了一个更友好的用户界面,使得在 GUI 环境中使用 CMake 变得更加方便。
所以整体来说,这个命令是在构建 CMake 的同时,也构建了它的两种图形界面:Curses 图形界面和 Qt-based GUI。
U
为什么 build Curses 界面命令和 qt-based gui 命令的格式不一样
这个问题的答案主要依赖于CMake的bootstrap脚本的设计。这个脚本是用来在Unix-like操作系统(如Linux)上从源代码编译CMake的。
  1. DCMAKE_BUILD_CursesDialog=ON 是CMake的常规选项,用于控制是否构建基于Curses库的TUI(Text User Interface,文本用户界面)。这个选项以D<option>=<value>的形式提供给CMake,这是CMake自定义变量的通用方式。
  1. -qt-gui 是一个特殊的选项,它是直接传递给bootstrap脚本的,而不是通过 D<option>=<value> 的形式设置的。这个选项告诉脚本在构建CMake时也要构建Qt-based的GUI。在这个脚本的设计中,这个选项被单独处理。
所以,之所以命令格式不一样,是因为这两个选项在bootstrap脚本中的处理方式不同。-DCMAKE_BUILD_CursesDialog=ON 是通用的CMake变量设置方式,而 --qt-gui 是一个特定于 bootstrap 脚本的选项。
U
`qt-gui` 可以用 Cmake 变量设置吗
bootstrap 脚本中,--qt-gui 是一个特定的选项,不同于通用的 CMake 变量。因此,你不能直接通过 -D<option>=<value> 的方式来设置 Qt-based GUI 的构建。--qt-gui 是专门为 bootstrap 脚本设计的参数,它告诉脚本需要构建 Qt-based GUI。
当然,CMake 的设计可能会随着版本的更新而发生变化,可能在未来的某个版本中可以通过通用的 -D<option>=<value> 的方式来设置 Qt-based GUI 的构建。但是到我知识库截止的日期 (2021年9月),这种设置方式并不可用。你可以查看最新版本的 CMake 文档,看看是否有相关的更新。
 
 

cmake 命令和 bootstrap 命令的混合使用方法

 
./bootstrap --qt-gui -- -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON
./bootstrap -- -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON --qt-gui
哪个命令是对的
在这两个命令中,正确的命令是:
bootstrap 脚本中,--qt-gui 是一个直接提供给 bootstrap 的标志,而 -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON 是传递给 CMake 的参数。这两类参数是有区别的,需要分别处理。
  • - 符号的作用就是区分这两类参数。-qt-gui 这样的标志应该直接提供给 bootstrap,位于 - 符号前;而 DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON 这样的参数应该传递给 CMake,位于 - 符号后。
因此,你应该在 -- 符号前写 --qt-gui,在 -- 符号后写 -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_CursesDialog=ON。如果你把 --qt-gui 写在 -- 符号后,那么 bootstrap 将不会接收到 --qt-gui 这个标志,从而无法构建 Qt-based GUI。
 

Step 3: Build 和 Install 的两种方式 直接 make VS. cmake —build

During build process source files are compiled into object files which are linked together or otherwise combined into libraries and applications. This step can be run using universal command:
cmake --build <build-directory> <build-options>
... or underlying build system can be called directly:
make

(optional) Step 3: Install

During installation procedure build results and other files from build directory will be copied to the install location. Default installation location is /usr/local on UNIX and C:/Program Files on Windows. This location can be changed at the configuration step by setting CMAKE_INSTALL_PREFIX option. To perform installation run the following command:
cmake --build <build-directory> --target install <other-options>
技术折腾
  • 闪念
  • Linux
  • 操作系统
  • 图像编程
  • 折腾
  • 工具
  • 开发
  • ubuntu 更新 python 和所有的python Library台式机上部署内外双网络
    目录