我尝试下载 并构建https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz,但是构建后在./bin子文件夹中没有cmake-gui。cmake-gui是否在另一个源归档文件中提供?
我尝试下载 并构建https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz,但是构建后在./bin子文件夹中没有cmake-gui。cmake-gui是否在另一个源归档文件中提供?
Answers:
这里有两个选择:
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
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.
没有什么依赖于cmake了(可能),因此它是一个叶子节点。卸载deb。从https://cmake.org/获取最新资源,然后将压缩包解压缩到某个位置,然后将其装入cd。
./bootstrap --qt-gui
make
make install
假设您已经安装了QT开发人员资料。您最终会遇到常规命令行cmake和cmake-qui。通过键入cmake或cmake-gui从命令行启动它们,我不知道如何添加菜单。
在这个特定的过程中,我决定使用cmake的适当版本配置cmake的最新版本(抱歉,如果这令人困惑)。
cmake-gui使用与cmake命令行工具相同的存储库进行编译,但是未设置cmake的默认构建配置来构建cmake-gui(curses界面或Qt界面均未设置)。
要使用cmake-gui构建cmake,必须在cmake构建脚本中设置一些变量。您通常可以通过UI来执行此操作,但是也可以通过在构建目录中手动编辑CMakeCache.txt来设置这些变量,这就是我将在此答案中演示的操作。
CMake需要Qt,但它无法自动找到它,我们需要做的一件事就是显示Qt CMake脚本的位置。
从Qt的网站下载安装程序。就我而言,我选择了最新版本的5.12(在撰写本文时为5.12.7),并使用所有默认设置进行了安装。
您需要使用Qt帐户才能使用此方法下载安装程序。该帐户对开放源代码用户免费(如果您正在使用此帐户来构建供自己使用的cmake,则为免费帐户;如果计划将Qt用于其他用途,则应验证是否可以使用此版本)。
我将Qt安装到主目录中名为Qt的文件夹中。
此安装过程将花费一些时间。
我认为Qt可以通过apt获得,但是出于我的目的,我需要为另一个项目下载完整文件,因此无论如何我都在这里找到了。
git clone https://gitlab.kitware.com/cmake/cmake.git
cd cmake
mkdir build
cd build
cmake ..
除其他外,这将在构建文件夹中放置一个名为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
cmake ..
其中N是要编译的内核数,在我的情况下,我输入make -j10
。
make -jN
sudo make install
sudo make install
不幸的是,它没有替换存储在/ usr / bin中的cmake版本。
可能存在一种更干净的方法来完成此步骤。
使用cmake --version
来验证,如果你需要做到这一点,如果它给出了用apt附带的版本(我在写作的时候,3.10.2),你需要做到这一点。
您还应该验证cmake的版本在/ usr / local / bin /中。
我需要执行以下操作:
sudo mv /usr/bin/cmake /usr/bin/cmake_old
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版本:这个commit,没有什么特别的意义,我只是克隆了最新的。
我认为,如果在整个过程中使用apt版本的cmake配置cmake的最新版本,则此方法应该有效。如果这不起作用,请在评论中让我知道。