Jak zbudować cmake-gui na Linuksie ze źródła?

Odpowiedzi:

6

Dwie opcje tutaj:

  • cmake-guijest pakowany jako cmake-qt-gui . Zainstaluj z:

    sudo apt-get install cmake-qt-gui
    
  • Jeśli naprawdę musisz zbudować go ze źródła, wykonaj następujące czynności:

    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
źródło
2
Nie, pakiety zawierają przestarzałe cmake, które nie obsługuje na przykład boost 1.66 ...
stiv
5
Instalacja cmake-qt-guiz apt po skompilowaniu cmakeze źródeł doprowadziłaby do następującego rodzaju błędu: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

Nic innego nie zależy od cmake (prawdopodobnie), więc jest to węzeł liścia. Odinstaluj deb. Pobierz najnowsze źródło z https://cmake.org/ i rozpakuj gdzieś tarball, włóż do niego cd.

./bootstrap --qt-gui
make
make install

Zakładając, że masz zainstalowane oprogramowanie deweloperskie QT. Skończysz na zwykłym cmake wierszu polecenia i cmake-qui. Uruchom je z wiersza poleceń, wpisując cmake lub cmake-gui, nie wiem o dodawaniu do menu.

Alan Corey
źródło
0

Proces

  • W tym konkretnym procesie postanowiłem skonfigurować najnowszą wersję cmake z odpowiednią wersją cmake (przepraszam, jeśli jest to mylące).

  • cmake-gui jest kompilowany z tym samym repozytorium co narzędzie wiersza poleceń cmake, ale domyślna konfiguracja kompilacji cmake nie jest skonfigurowana do budowania cmake-gui (ani interfejsu przekleństw, ani interfejsu Qt).

  • Aby zbudować cmake za pomocą cmake-gui, konieczne jest ustawienie niektórych zmiennych w skrypcie kompilacji cmake. Zwykle możesz to zrobić za pomocą interfejsu użytkownika, ale można również ustawić te zmienne, ręcznie edytując plik CMakeCache.txt w katalogu kompilacji, co pokażę, jak to zrobić w tej odpowiedzi.

  • CMake wymaga Qt, ale nie może go znaleźć automatycznie, jedną z rzeczy, które musimy zrobić, to pokazać, gdzie znajdują się skrypty Qt CMake.

1. Zainstaluj Qt (jeśli jeszcze go nie masz)

  • Pobierz instalator ze strony internetowej Qt . W moim przypadku wybrałem najnowszą wersję 5.12 (w momencie pisania 5.12.7) i zainstalowałem ją ze wszystkimi ustawieniami domyślnymi.

  • Musisz założyć konto w Qt, aby pobrać instalator przy użyciu tej metody; konto jest bezpłatne dla użytkowników open source (którym jesteś, jeśli używasz tego do zbudowania cmake na własny użytek; jeśli planujesz używać Qt do czegokolwiek innego, powinieneś sprawdzić, czy możesz użyć tej wersji).

  • Zainstalowałem Qt w folderze o nazwie Qt w moim katalogu domowym.

  • Ten proces instalacji potrwa chwilę.

  • Myślę, że Qt może być dostępny przez apt, ale do moich celów potrzebowałem pełnego pobrania innego projektu, więc i tak miałem go tutaj.

2. git klonuje źródła cmake z ich repozytorium git gdzieś (np. Do twojego katalogu domowego).

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

3. Utwórz katalog kompilacji

cd cmake
mkdir build
cd build
cmake ..

Spowoduje to między innymi umieszczenie pliku o nazwie CMakeCache.txt w folderze kompilacji.

4. Edytuj plik CMakeCache.txt, aby skonfigurować interfejs użytkownika

  • Otwórz ten plik w edytorze tekstu i edytuj następujące wiersze, aby włączyć interfejs qt ui (znalazłem je, wyszukując qt).

  • Zauważ, że musisz zastąpić PATH_TO_QT katalogiem, w którym znajduje się twój katalog qt, w moim przypadku PATH_TO_QT to po prostu / home / myname / Qt.

  • Odradzałbym używanie ścieżek względnych lub ~.
//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. Uruchom ponownie cmake .. w katalogu kompilacji

cmake ..

6. Skompiluj cmake (w katalogu kompilacji)

Gdzie N jest liczbą rdzeni, które chcesz skompilować, w moim przypadku wpisałem make -j10.

make -jN

7. Zainstaluj wbudowany cmake

  • Możesz zrobić pokusę, aby usunąć odpowiednią wersję cmake przed zrobieniem tego, ale wydaje się, że (z jakiegoś powodu) część instalacyjna cmake wymaga zainstalowania cmake, aby ... zainstalować cmake.
sudo make install

8. Operacje końcowe

  • sudo make install nie zastępuje wersji cmake przechowywanej w / usr / bin, niestety.

  • Ten sposób może być czystszy.

  • Użyj, cmake --versionaby sprawdzić, czy musisz to zrobić, jeśli daje wersję dostarczoną z apt (dla mnie w momencie pisania 3.10.2), musisz to zrobić.

  • Powinieneś także sprawdzić, czy twoja wersja cmake znajduje się w / usr / local / bin /

Musiałem wykonać następujące czynności:

Zmień nazwę apt zainstalowanego pliku binarnego cmake

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

Połącz naszą wbudowaną wersję cmake w / usr / bin /

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
  • Nie spodziewałem się, że będę musiał połączyć nową wersję cmake z / usr / bin /, ponieważ / usr / local / bin powinien znajdować się w zmiennej PATH; z jakiegoś powodu uparcie szukałby tylko cmake w / usr / bin i wyświetlał błąd, mówiąc, że nie znaleziono / usr / bin / cmake, mimo że najnowsza wersja cmake była dostępna w / usr / local / bin.

  • Wydaje mi się, że możliwe jest, że zresetowanie bash'a lub ponowne uruchomienie mogło naprawić potrzebę linkowania, ale nie jestem pewien.

Wpisz, cmake-guiaby uruchomić interfejs użytkownika

Zrzut ekranu cmake-gui

Fajne!

Notatki

  • Testowane na Ubuntu Mate 18.04.1 x86_64
  • Wersja Cmake, którą próbuję zainstalować: to zatwierdzenie , nie ma to żadnego szczególnego znaczenia, właśnie sklonowałem najnowszą.

  • Moim zdaniem ta metoda powinna działać, jeśli używasz apt cmake do skonfigurowania najnowszej wersji cmake podczas całego tego procesu. Jeśli to nie zadziała, daj mi znać w komentarzach.

  • W moim przypadku (podobnie jak OP), chcę wrócić i zbudować cmake-gui po tym, jak już zainstalowałem budowę najnowszej wersji cmake ze źródła.
  • Zatem w (mało prawdopodobne) IMO część skryptu, która buduje cmake-gui, potrzebuje najnowszej wersji cmake do zbudowania cmake, ale reszta kompilacji była w porządku z wersją apt, aby dokładnie odtworzyć kroki, które zrobiłem tutaj możesz zbudować cmake z wersją apt, a następnie ponownie skonfigurować najnowszą wersję cmake i zbudować ponownie.
jrh
źródło
Nie ma podpowiedzi w języku cmake , użyłem podświetlania C. Myślę, że to lepsze niż nic.
jrh