Wie erstelle ich cmake-gui unter Linux aus dem Quellcode?

Antworten:

5

Zwei Optionen hier:

  • cmake-guiist als cmake-qt-gui verpackt . Installieren Sie es mit:

    sudo apt-get install cmake-qt-gui
    
  • Wenn Sie es wirklich aus dem Quellcode erstellen müssen, gehen Sie wie folgt vor:

    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
    
N0rbert
quelle
2
Nein, Pakete enthalten veraltete cmake, die zum Beispiel Boost 1.66 nicht unterstützen ...
stiv
4
Die Installation cmake-qt-guimit apt nach dem Kompilieren cmakeaus Quellen würde zu folgendem Fehler führen: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

Nichts anderes hängt (wahrscheinlich) von cmake ab, also ist es ein Blattknoten. Deinstallieren Sie die deb. Holen Sie sich die neueste Quelle von https://cmake.org/ und packen Sie den Tarball irgendwo aus, CD hinein.

./bootstrap --qt-gui
make
make install

Angenommen, Sie haben das QT-Entwicklungsmaterial installiert. Sie erhalten sowohl reguläres Befehlszeilen-cmake als auch cmake-qui. Starten Sie sie über die Befehlszeile, indem Sie cmake oder cmake-gui eingeben. Ich weiß nicht, wie man Menüs hinzufügt.

Alan Corey
quelle
0

Prozess

  • In diesem speziellen Prozess habe ich beschlossen, die neueste Version von cmake mit der passenden Version von cmake zu konfigurieren (sorry, wenn dies verwirrend ist).

  • cmake-gui wird mit demselben Repository wie das Befehlszeilentool cmake kompiliert, aber die Standard-Build-Konfiguration für cmake ist nicht zum Erstellen von cmake-gui eingerichtet (weder die Curses-Schnittstelle noch die Qt-Schnittstelle).

  • Um cmake mit cmake-gui zu erstellen, müssen einige Variablen im cmake-Build-Skript festgelegt werden. Normalerweise tun Sie dies über die Benutzeroberfläche, aber es ist auch möglich, diese Variablen durch manuelles Bearbeiten von CMakeCache.txt im Build-Verzeichnis festzulegen. Dies wird in dieser Antwort gezeigt.

  • CMake erfordert Qt, kann es jedoch nicht automatisch finden. Eines der Dinge, die wir tun müssen, ist zu zeigen, wo sich die Qt CMake-Skripte befinden.

1. Installieren Sie Qt (falls Sie es noch nicht haben)

  • Laden Sie das Installationsprogramm von der Qt-Website herunter . In meinem Fall habe ich die neueste Version von 5.12 (zum Zeitpunkt des Schreibens 5.12.7) ausgewählt und mit allen Standardeinstellungen installiert.

  • Sie müssen ein Konto bei Qt erstellen, um das Installationsprogramm mit dieser Methode herunterladen zu können. Das Konto ist für Open Source-Benutzer kostenlos (wenn Sie dies verwenden, um cmake nur für Ihren eigenen Gebrauch zu erstellen; wenn Sie Qt für andere Zwecke verwenden möchten, sollten Sie überprüfen, ob Sie diese Version verwenden können).

  • Ich habe Qt in einem Ordner namens Qt in meinem Home-Verzeichnis installiert.

  • Dieser Installationsvorgang dauert eine Weile.

  • Ich denke, Qt könnte über apt verfügbar sein, aber für meine Zwecke brauchte ich den vollständigen Download für ein anderes Projekt, also hatte ich es trotzdem hier.

2. git klont die cmake-Quellen aus ihrem git-Repository an einen Ort (z. B. in Ihr Home-Verzeichnis).

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

3. Erstellen Sie ein Build-Verzeichnis

cd cmake
mkdir build
cd build
cmake ..

Dadurch wird unter anderem eine Datei mit dem Namen CMakeCache.txt in Ihrem Build-Ordner abgelegt.

4. Bearbeiten Sie CMakeCache.txt, um die Benutzeroberfläche zu konfigurieren

  • Öffnen Sie diese Datei in Ihrem Texteditor und bearbeiten Sie die folgenden Zeilen, um die qt-Benutzeroberfläche zu aktivieren (ich habe diese gefunden, indem ich nach qt gesucht habe).

  • Beachten Sie, dass Sie PATH_TO_QT durch Ihr qt-Verzeichnis ersetzen müssen. In meinem Fall war PATH_TO_QT nur / home / myname / Qt.

  • Ich würde davon abraten, relative Pfade oder ~ zu verwenden.
//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. Führen Sie cmake .. im Build-Verzeichnis erneut aus

cmake ..

6. Kompilieren Sie cmake (im Build-Verzeichnis).

Wo N die Anzahl der Kerne ist, die Sie kompilieren möchten, habe ich in meinem Fall eingegeben make -j10.

make -jN

7. Installieren Sie den gebauten cmake

  • Sie könnten versucht sein, die passende Version von cmake zu entfernen, bevor Sie dies tun, aber es scheint, dass (aus irgendeinem Grund) für den Installationsteil von cmake cmake installiert werden muss, um ... cmake zu installieren.
sudo make install

8. Endgültige Operationen

  • sudo make install ersetzt leider nicht die in / usr / bin gespeicherte Version von cmake.

  • Möglicherweise gibt es einen saubereren Weg, um diesen Schritt auszuführen.

  • Verwenden cmake --versionSie diese Option, um zu überprüfen, ob Sie dies tun müssen. Wenn die mit apt gelieferte Version angegeben ist (für mich zum Zeitpunkt des Schreibens 3.10.2), müssen Sie dies tun.

  • Sie sollten auch überprüfen, ob sich Ihre Version von cmake in / usr / local / bin / befindet.

Ich musste Folgendes tun:

Benennen Sie die installierte cmake-Binärdatei um

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

Verknüpfen Sie unsere integrierte Version von cmake mit / usr / bin /

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
  • Ich hatte nicht erwartet, die neue Version von cmake mit / usr / bin / verknüpfen zu müssen, da / usr / local / bin in PATH sein sollte; Aus irgendeinem Grund würde es hartnäckig nur nach cmake in / usr / bin suchen und mir eine Fehlermeldung geben, dass / usr / bin / cmake nicht gefunden wurde, obwohl die neueste Version von cmake in / usr / local / bin verfügbar war.

  • Ich denke, es ist möglich, dass ein Zurücksetzen von Bash oder ein Neustart die Notwendigkeit einer Verknüpfung behoben haben könnte, aber ich bin mir nicht sicher.

Geben Sie ein cmake-gui, um die Benutzeroberfläche zu starten

Ein Screenshot von cmake-gui

Cool!

Anmerkungen

  • Getestet auf Ubuntu Mate 18.04.1 x86_64
  • Cmake-Version, die ich zu installieren versuche: Dieses Commit hat keine besondere Bedeutung. Ich habe nur die neueste Version geklont.

  • Ich bin der Meinung, dass diese Methode funktionieren sollte, wenn Sie die apt-Version von cmake verwenden, um die neueste Version von cmake während des gesamten Prozesses zu konfigurieren. Wenn dies nicht funktioniert, lass es mich in den Kommentaren wissen.

  • In meinem Fall (wie dem OP) möchte ich zurückgehen und cmake-gui erstellen, nachdem ich bereits die neueste Version von cmake aus dem Quellcode installiert habe.
  • In der (IMO unwahrscheinlichen) Möglichkeit, dass der Teil des Skripts, der cmake-gui erstellt, die neueste Version von cmake benötigt, um cmake zu erstellen, war der Rest des Builds mit der apt-Version in Ordnung, um die von mir ausgeführten Schritte genau zu replizieren Hier können Sie cmake mit der apt-Version erstellen, dann mit der neuesten Version von cmake neu konfigurieren und erneut erstellen.
jrh
quelle
Es gibt keine Cmake Sprache Hinweis , habe ich C - Hervorhebung. Ich denke es ist besser als nichts.
JRH