J'ai essayé de télécharger https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz et de le construire, mais il n'y a pas de cmake-gui dans le sous-dossier ./bin après la construction. Cmake-gui est-il fourni dans une autre archive source?
J'ai essayé de télécharger https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz et de le construire, mais il n'y a pas de cmake-gui dans le sous-dossier ./bin après la construction. Cmake-gui est-il fourni dans une autre archive source?
Réponses:
Deux options ici:
cmake-gui
est emballé sous cmake-qt-gui . Installez-le avec:
sudo apt-get install cmake-qt-gui
Si vous avez vraiment besoin de le construire à partir des sources, procédez comme suit:
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
avec apt après avoir compilé à cmake
partir des sources entraînerait le type d'erreur suivant: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.
Rien d'autre ne dépend de cmake (probablement), c'est donc un nœud feuille. Désinstallez le deb. Obtenez la dernière source sur https://cmake.org/ et décompressez l'archive quelque part, cd dedans.
./bootstrap --qt-gui
make
make install
En supposant que vous avez installé les éléments de développement QT. Vous vous retrouvez avec cmake et cmake-qui en ligne de commande. Démarrez-les à partir de la ligne de commande en tapant cmake ou cmake-gui, je ne sais pas comment ajouter aux menus.
Dans ce processus particulier, j'ai décidé de configurer la dernière version de cmake, avec la version apt de cmake (désolé si cela prête à confusion).
cmake-gui est compilé avec le même référentiel que l'outil de ligne de commande cmake, mais la configuration de construction par défaut pour cmake n'est pas configurée pour construire cmake-gui (ni l'interface curses ni l'interface Qt).
Pour construire cmake avec cmake-gui, il est nécessaire de définir certaines variables dans le script de construction cmake. Vous pouvez normalement le faire via l'interface utilisateur, mais il est également possible de définir ces variables en modifiant manuellement CMakeCache.txt dans le répertoire de construction, ce que je montrerai comment faire dans cette réponse.
CMake nécessite Qt, mais il ne le trouve pas automatiquement, l'une des choses que nous devons faire est de montrer où sont les scripts Qt CMake.
Téléchargez le programme d'installation à partir du site Web de Qt . Dans mon cas, j'ai sélectionné la dernière version de 5.12 (au moment de la rédaction, 5.12.7) et je l'ai installée avec tous les paramètres par défaut.
Vous devrez créer un compte avec Qt pour télécharger le programme d'installation à l'aide de cette méthode; le compte est gratuit pour les utilisateurs open source (ce que vous êtes si vous l'utilisez pour simplement créer cmake pour votre propre usage; si vous prévoyez d'utiliser Qt pour autre chose, vous devriez vérifier si vous pouvez utiliser cette version).
J'ai installé Qt dans un dossier nommé Qt dans mon répertoire personnel.
Ce processus d'installation prendra un certain temps.
Je pense que Qt pourrait être disponible via apt, mais pour mes besoins, j'avais besoin du téléchargement complet pour un autre projet, donc je l'avais ici de toute façon.
git clone https://gitlab.kitware.com/cmake/cmake.git
cd cmake
mkdir build
cd build
cmake ..
Cela placera, entre autres, un fichier nommé CMakeCache.txt dans votre dossier de construction.
Ouvrez ce fichier dans votre éditeur de texte et modifiez les lignes suivantes pour activer qt ui (je les ai trouvées en recherchant qt).
Notez que vous devez remplacer PATH_TO_QT par l'emplacement de votre répertoire qt, dans mon cas, PATH_TO_QT était juste / 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 ..
Où N est le nombre de cœurs que vous souhaitez compiler, dans mon cas, j'ai tapé make -j10
.
make -jN
sudo make install
sudo make install
ne remplace pas la version de cmake stockée dans / usr / bin, malheureusement.
Il peut y avoir un moyen plus propre d'accomplir cette étape.
Utilisez cmake --version
pour vérifier si vous devez le faire, si cela donne la version fournie avec apt (pour moi au moment de la rédaction, 3.10.2), vous devrez le faire.
Vous devez également vérifier que votre version de cmake se trouve dans / usr / local / bin /
Je devais faire ce qui suit:
sudo mv /usr/bin/cmake /usr/bin/cmake_old
sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
Je ne m'attendais pas à avoir besoin de lier la nouvelle version de cmake dans / usr / bin /, car / usr / local / bin devrait être dans PATH; pour une raison quelconque, il ne chercherait obstinément que cmake dans / usr / bin, et me donnerait une erreur disant que / usr / bin / cmake n'a pas été trouvé même si la dernière version de cmake était disponible dans / usr / local / bin.
Je suppose qu'il est possible qu'une réinitialisation de bash ou un redémarrage ait résolu le besoin de liaison, mais je ne suis pas sûr.
cmake-gui
pour démarrer l'interface utilisateurCool!
Version de Cmake que j'essaie d'installer: ce commit , cela n'a pas de signification particulière, je viens de cloner le dernier.
Je pense que cette méthode devrait fonctionner si vous utilisez la version apt de cmake pour configurer la dernière version de cmake pendant tout ce processus. Si cela ne fonctionne pas, faites-le moi savoir dans les commentaires.