Я попытался загрузить https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz и собрать его, но после компиляции нет подпапки cmake-gui в ./bin. Поставляется ли cmake-gui в другом исходном архиве?
Я попытался загрузить https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz и собрать его, но после компиляции нет подпапки cmake-gui в ./bin. Поставляется ли cmake-gui в другом исходном архиве?
Ответы:
Два варианта здесь:
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 (вероятно), так что это листовой узел. Удалите деб. Получите последний источник с https://cmake.org/ и распакуйте архив где-нибудь, перейдите в него.
./bootstrap --qt-gui
make
make install
Предполагая, что у вас установлен QT dev. В итоге вы получаете как обычную командную строку cmake, так и cmake-qui. Запустите их из командной строки, набрав cmake или cmake-gui, я не знаю о добавлении в меню.
В этом конкретном процессе я решил настроить последнюю версию cmake, с версией apt amake (извините, если это сбивает с толку).
cmake-gui скомпилирован с тем же хранилищем, что и инструмент командной строки cmake, но конфигурация сборки по умолчанию для cmake не настроена для сборки cmake-gui (ни интерфейс curses, ни интерфейс Qt).
Чтобы собрать cmake с помощью cmake-gui, необходимо установить некоторые переменные в скрипте сборки cmake. Обычно вы можете сделать это через пользовательский интерфейс, но также можно установить эти переменные, вручную отредактировав 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 (я нашел их с помощью поиска 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
cmake ..
Где N - количество ядер, которые вы хотите скомпилировать, в моем случае я набрал make -j10
.
make -jN
sudo make install
sudo make install
к сожалению, не заменяет версию cmake, хранящуюся в / usr / bin.
Может быть более чистый способ выполнить этот шаг.
Используйте, 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; по какой-то причине, он будет упорно смотреть только на CMake в / USR / бен, и дать мне ошибку о том, что / USR / бен / CMake не был найден, хотя последняя версия CMake была доступна в / USR / местные / бен.
Я думаю, что вполне возможно, что сброс bash или перезагрузка могли бы исправить необходимость линковки, но я не уверен.
cmake-gui
для запуска пользовательского интерфейсаКруто!
Cmake версия, которую я пытаюсь установить: этот коммит , особого значения в этом нет, я просто клонировал последнюю.
По моему мнению, этот метод должен работать, если вы используете apt-версию cmake для настройки последней версии cmake во время всего этого процесса. Если это не сработает, дайте мне знать в комментариях.