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


Answers:


6

这里有两个选择:

  • 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
    

2
不,软件包中包含过时的cmake,例如,不支持boost 1.66 ...
stiv

5
从源代码cmake-qt-gui编译后使用apt 安装cmake将导致以下类型的错误:Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: cmake-qt-gui : Depends: cmake (= 3.5.1-1ubuntu3) E: Unable to correct problems, you have held broken packages.
sk

2

没有什么依赖于cmake了(可能),因此它是一个叶子节点。卸载deb。从https://cmake.org/获取最新资源,然后将压缩包解压缩到某个位置,然后将其装入cd。

./bootstrap --qt-gui
make
make install

假设您已经安装了QT开发人员资料。您最终会遇到常规命令行cmake和cmake-qui。通过键入cmake或cmake-gui从命令行启动它们,我不知道如何添加菜单。


0

处理

  • 在这个特定的过程中,我决定使用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以配置用户界面

  • 在文本编辑器中打开此文件,然后编辑以下几行以启用qt ui(我通过搜索qt找到了这些内容)。

  • 请注意,您需要用qt目录所在的位置替换PATH_TO_QT,在我的情况下,PATH_TO_QT只是/ home / myname / Qt。

  • 我建议不要使用相对路径或〜。
//Build Qt dialog for CMake
BUILD_QtDialog:BOOL=ON

QT_QMAKE_EXECUTABLE:FILEPATH=PATH_TO_QT/5.12.7/gcc_64/bin/qmake

//The directory containing a CMake configuration file for Qt5Core.
Qt5Core_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Core

//The directory containing a CMake configuration file for Qt5Widgets.
Qt5Widgets_DIR:PATH=PATH_TO_QT/5.12.7/gcc_64/lib/cmake/Qt5Widgets

5.在构建目录中重新运行cmake ..

cmake ..

6.编译cmake(在构建目录中)

其中N是要编译的内核数,在我的情况下,我输入make -j10

make -jN

7.安装内置的cmake

  • 在执行此操作之前,您可能会尝试删除apt版本的apt,但是(出于某种原因)看来,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 / local / bin中可以找到最新版本的cmake,也找不到/ usr / bin / cmake。

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

键入cmake-gui以启动UI

cmake-gui的屏幕截图

凉!

笔记

  • 在Ubuntu Mate 18.04.1 x86_64上测试
  • 我正在尝试安装的Cmake版本:这个commit,没有什么特别的意义,我只是克隆了最新的。

  • 我认为,如果在整个过程中使用apt版本的cmake配置cmake的最新版本,则此方法应该有效。如果这不起作用,请在评论中让我知道。

  • 就我而言(例如OP),我已经安装了从源代码构建最新版本的cmake,现在我希望返回并构建cmake-gui。
  • 因此,在(不太可能出现的IMO)机会中,生成cmake-gui的脚本部分需要使用最新版本的cmake来生成cmake,但是其余版本对于apt版本来说都是可以的,以完全复制我所做的步骤在这里,您可以使用apt版本构建cmake,然后使用最新构建的cmake版本重新配置,然后重新构建。

没有cmake 语言提示,我用C突出显示。我想总比没有好。
jrh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.