AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1020168
Accepted
stiv
stiv
Asked: 2018-03-29 22:56:14 +0800 CST2018-03-29 22:56:14 +0800 CST 2018-03-29 22:56:14 +0800 CST

如何从源代码在 Linux 上构建 cmake-gui?

  • 772

我尝试下载 https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz 并构建它,但是构建后 ./bin 子文件夹中没有 cmake-gui 。cmake-gui 是否在另一个源存档中提供?

14.04 cmake
  • 5 5 个回答
  • 13843 Views

5 个回答

  • Voted
  1. Best Answer
    N0rbert
    2018-03-30T00:45:48+08:002018-03-30T00:45:48+08:00

    这里有两个选项:

    • cmake-gui被打包为cmake-qt-gui。安装它:

      sudo apt-get install cmake-qt-gui
      
    • 如果您确实需要从源代码构建它,请执行以下操作:

      sudo apt-get update
      sudo apt-get build-dep cmake-qt-gui
      wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz
      
      tar -xzf cmake-3.11.0.tar.gz
      cd cmake-3.11.0/
      ./configure --qt-gui
      make -j5
      bin/cmake-gui
      
    • 6
  2. Alan Corey
    2019-09-05T18:47:23+08:002019-09-05T18:47:23+08:00

    没有其他东西依赖于 cmake(可能),所以它是一个叶节点。卸载deb。从https://cmake.org/获取最新源并在某处解压缩 tarball,cd 进入其中。

    ./bootstrap --qt-gui
    make
    make install
    

    假设你安装了 QT 开发的东西。你最终会得到常规的命令行 cmake 和 cmake-qui。通过键入 cmake 或 cmake-gui 从命令行启动它们,我不知道添加到菜单。

    • 2
  3. 黄学华
    2021-05-18T06:04:36+08:002021-05-18T06:04:36+08:00

    在 ubuntu 18.04 LTS 上使用 cmake 3.20.1 测试

    编译前检查 Qt5 的安装(sudo apt install qt5-default)

    如果您已经有较低版本的 cmake

    cd cmake-3.20.1
    mkdir build
    cd build
    cmake -D BUILD_QtDialog=ON ..
    make -j2
    sudo apt remove cmake # remove current cmake
    sudo make install
    

    否则,如果您的系统中没有 cmake

    cd cmake-3.20.1
    ./bootstrap --qt-gui
    make -j2
    sudo make install
    
    • 2
  4. stiv
    2021-02-12T12:30:59+08:002021-02-12T12:30:59+08:00

    万一您因为 QT5 小部件的问题而无法构建 cmake-gui,请尝试以下操作:

    apt install qt5-default

    • 1
  5. jrh
    2020-03-11T04:52:16+08:002020-03-11T04:52:16+08:00

    过程

    • 在这个特定的过程中,我决定使用 apt 版本的 cmake 配置最新版本的 cmake(如果这令人困惑,请原谅)。

    • cmake-gui 与 cmake 命令行工具使用相同的存储库进行编译,但 cmake 的默认构建配置未设置为构建 cmake-gui(无论是 curses 界面还是 Qt 界面)。

    • 要使用 cmake-gui 构建 cmake,需要在 cmake 构建脚本中设置一些变量。您通常可以通过 UI 执行此操作,但也可以通过手动编辑构建目录中的 CMakeCache.txt 来设置这些变量,这就是我将在此答案中展示的方法。

    • CMake 需要 Qt,但它无法自动找到它,我们需要做的一件事是显示 Qt CMake 脚本的位置。

    1.安装Qt(如果你还没有的话)

    • 从Qt 的网站下载安装程序。就我而言,我选择了最新版本的 5.12(在撰写本文时为 5.12.7)并使用所有默认设置安装它。

    • 您需要在 Qt 上注册一个帐户才能使用此方法下载安装程序;该帐户对开源用户是免费的(如果您使用它来构建供自己使用的 cmake,那么您就是;如果您打算将 Qt 用于其他任何用途,则应验证是否可以使用此版本)。

    • 我将 Qt 安装到我的主目录中名为 Qt 的文件夹中。

    • 此安装过程需要一段时间。

    • 我认为 Qt 可能可以通过 apt 获得,但出于我的目的,我需要另一个项目的完整下载,所以无论如何我都在这里。

    2. git 将 cmake 源代码从他们的git 存储库克隆到某个地方(例如,您的主目录)。

    git clone https://gitlab.kitware.com/cmake/cmake.git

    3.制作一个构建目录

    cd cmake
    mkdir build
    cd build
    cmake ..
    

    除其他外,这将在您的构建文件夹中放置一个名为 CMakeCache.txt 的文件。

    4.编辑CMakeCache.txt配置ui

    • 在你的文本编辑器中打开这个文件,并编辑以下行以启用 qt ui(我通过搜索 qt 找到了这些)。

    • 请注意,您需要替换为 qt 目录所在的位置,在我的情况下只是/home/jrh/Qt5.12.11.

    • 例如,我的 Qt5Core_DIR 目录(运行 Qt 5.12.11)是/home/jrh/Qt5.12.11/5.12.11/gcc_64/lib/cmake/Qt5Core

    • 我建议不要使用相对路径或 ~.

    //Build Qt dialog for CMake
    BUILD_QtDialog:BOOL=ON
    
    QT_QMAKE_EXECUTABLE:FILEPATH=<path to Qt>/<qt version>/gcc_64/bin/qmake
    
    //The directory containing a CMake configuration file for Qt5Core.
    Qt5Core_DIR:PATH=<path to Qt>/<qt version>/gcc_64/lib/cmake/Qt5Core
    
    //The directory containing a CMake configuration file for Qt5Widgets.
    Qt5Widgets_DIR:PATH=<path to Qt>/<qt version>/gcc_64/lib/cmake/Qt5Widgets
    
    //The directory containing a CMake configuration file for Qt5.
    //FYI: This folder should contain a file named Qt5Config.cmake
    Qt5_DIR:PATH=<path to Qt>/<qt version>/gcc_64/lib/cmake/Qt5
    
    

    5.在build目录下重新运行cmake..

    cmake ..
    

    6.编译cmake(在build目录下)

    其中 N 是您要编译的内核数,在我的例子中,我输入了make -j10.

    make -jN
    

    7.安装构建好的cmake

    • 在执行此操作之前,您可能想删除 apt 版本的 cmake,但似乎(出于某种原因)cmake 的安装部分需要安装 cmake 以...安装 cmake。
    sudo make install
    

    8. 最终操作

    • sudo make install不幸的是,它不会替换存储在 /usr/bin 中的 cmake 版本。

    • 可能有更简洁的方法来完成此步骤。

    • 用于cmake --version验证您是否需要执行此操作,如果它提供了 apt 附带的版本(对我而言,在撰写本文时为 3.10.2),您将需要执行此操作。

    • 您还应该验证您的 cmake 版本是否在 /usr/local/bin/

    我需要执行以下操作:

    重命名apt安装的cmake二进制文件

    sudo mv /usr/bin/cmake /usr/bin/cmake_old
    

    将我们构建的 cmake 版本链接到 /usr/bin/

    sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
    
    • 我没想到需要将新版本的 cmake 链接到 /usr/bin/,因为 /usr/local/bin 应该在 PATH 中;出于某种原因,它会固执地只在 /usr/bin 中查找 cmake,并给我一个错误说 /usr/bin/cmake 未找到,即使 /usr/local/bin 中提供了最新版本的 cmake。

    • 我想重置 bash 或重新启动可能已经解决了链接的需要,但我不确定。

    键入cmake-gui以启动 UI

    cmake-gui 的截图

    凉爽的!

    笔记

    • 在 Ubuntu Mate 18.04.1 x86_64 上测试
    • 我正在尝试安装的 Cmake 版本:这个 commit,这没有什么特别的意义,我只是克隆了最新的。我还将它用于 CMake 3.23.2,这是截至本次编辑时(22 年 5 月 26 日)的最新稳定版本。
    • 我最初为 Qt 5.12.7 编写了本指南,我不确定这是否只是巧合,但是当我使用 Qt 5.12.11 尝试它时,我唯一需要更改的是在那个版本中我还必须设置 Qt5_DIR .
    • 除了“使用 cmake 构建 cmake”选项之外,CMake 还提供了一个 ./configure 脚本,但由于配置脚本几乎运行 cmake,我认为走这条路没有多大意义。
    • 如果您通过运行 ./configure 路由开始此过程,请注意它似乎将构建目录设置为源代码目录的根目录。好消息是,如果您从 ./configure 开始,则不需要重新开始构建,CMakeCache.txt 应该存在于源代码目录的根目录中,您可以对其进行编辑,然后继续按照中记录的说明进行操作这个帖子。
    • 我认为,如果您在整个过程中使用 apt 版本的 cmake 来配置最新版本的 cmake,则此方法应该有效。如果这不起作用,请在评论中告诉我。
    • 在我的情况下(如 OP),我希望在已经从源代码安装构建最新版本的 cmake 之后返回并构建 cmake-gui。
    • 因此,在(IMO 不太可能)构建 cmake-gui 的脚本部分需要最新版本的 cmake 来构建 cmake 的情况下,但构建的其余部分可以使用 apt 版本,以准确复制我所做的步骤在这里,您可以使用 apt 版本构建 cmake,然后使用最新构建的 cmake 版本重新配置,然后再次构建。
    • 0

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve