Как собрать cmake-gui на Linux из исходного кода?

Ответы:

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
    
N0rbert
источник
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 (вероятно), так что это листовой узел. Удалите деб. Получите последний источник с https://cmake.org/ и распакуйте архив где-нибудь, перейдите в него.

./bootstrap --qt-gui
make
make install

Предполагая, что у вас установлен QT dev. В итоге вы получаете как обычную командную строку cmake, так и cmake-qui. Запустите их из командной строки, набрав cmake или cmake-gui, я не знаю о добавлении в меню.

Алан Кори
источник
0

Обработать

  • В этом конкретном процессе я решил настроить последнюю версию cmake, с версией apt amake (извините, если это сбивает с толку).

  • cmake-gui скомпилирован с тем же хранилищем, что и инструмент командной строки cmake, но конфигурация сборки по умолчанию для cmake не настроена для сборки cmake-gui (ни интерфейс curses, ни интерфейс Qt).

  • Чтобы собрать cmake с помощью cmake-gui, необходимо установить некоторые переменные в скрипте сборки cmake. Обычно вы можете сделать это через пользовательский интерфейс, но также можно установить эти переменные, вручную отредактировав 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 (я нашел их с помощью поиска qt).

  • Обратите внимание, что вам нужно заменить PATH_TO_QT тем, где находится ваш каталог 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-версию cmake перед тем, как сделать это, но похоже, что (по какой-то причине) установочная часть cmake требует установки cmake для ... установки cmake.
sudo make install

8. Заключительные операции

  • sudo make install к сожалению, не заменяет версию cmake, хранящуюся в / usr / bin.

  • Может быть более чистый способ выполнить этот шаг.

  • Используйте, 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; по какой-то причине, он будет упорно смотреть только на CMake в / USR / бен, и дать мне ошибку о том, что / USR / бен / CMake не был найден, хотя последняя версия CMake была доступна в / USR / местные / бен.

  • Я думаю, что вполне возможно, что сброс bash или перезагрузка могли бы исправить необходимость линковки, но я не уверен.

Введите cmake-guiдля запуска пользовательского интерфейса

Скриншот cmake-gui

Круто!

Ноты

  • Проверено на Ubuntu Mate 18.04.1 x86_64
  • Cmake версия, которую я пытаюсь установить: этот коммит , особого значения в этом нет, я просто клонировал последнюю.

  • По моему мнению, этот метод должен работать, если вы используете apt-версию cmake для настройки последней версии cmake во время всего этого процесса. Если это не сработает, дайте мне знать в комментариях.

  • В моем случае (например, OP) я собираюсь вернуться и собрать cmake-gui после того, как уже установил сборку последней версии cmake из исходного кода.
  • Таким образом, в (IMO вряд ли) шанс, что часть скрипта, которая собирает cmake-gui, нуждается в последней версии cmake для сборки cmake, но остальная часть сборки была в порядке с версией apt, чтобы точно повторить шаги, которые я сделал здесь вы можете собрать cmake с версией apt, затем перенастроить его на последнюю собранную версию cmake и собрать заново.
JRH
источник
Там нет подсказки языка cmake , я использовал C подсветки. Я думаю, это лучше, чем ничего.
JRH