Использование cmake в Linux
Я не люблю cmake. Теперь, когда это сказано, вот вопрос;
1) Как настроить конфигурацию с помощью cmake? С помощью make все, что нужно, это настроить --help, чтобы получить команды для правильной настройки конфигурации перед запуском make, как это делается с помощью cmake или вообще возможно?
2) Используя make, я могу создать установочный пакет для моего дистрибутива, используя make DESTDIR=/directory/build/ install, и файлы устанавливаются в / directory / build, затем я легко захожу в / build и создаю пакет для установки программы и удаление позже при необходимости, но с помощью cmake я не вижу способа сделать это, и программа не может быть удалена.
Я предполагаю, что есть способ сделать эти вещи, я просто еще не нашел их. Спасибо
1 ответ
Предположим, вы распаковали пакет с исходным кодом project-1.0.0.tar.gz
который создал каталог с похожим именем. Когда я использую cmake, я обычно создаю каталог с именем build
в котором .o
файлы и т. д. будут храниться, чтобы не загрязнять исходный каталог:
/home/user/project-1.0.0> mkdir build
/home/user/project-1.0.0> cd build
Из этого каталога я затем выполняю ccmake (то есть с двумя c), который является интерфейсом ncurses для конфигурации cmake. Поскольку вы должны указать, где находится основной файл CMakeLists.txt, в этом примере команда будет
/home/user/project-1.0.0/build> ccmake ..
Это запускает пользовательский интерфейс, который изначально ничего не показывает.
Затем вам нужно нажать 'c' (настроить), чтобы позволить cmake начать выяснять вещи. Когда это будет сделано, вы увидите несколько имен переменных cmake вместе с их значением. Вам, вероятно, не нужно будет их менять, я обычно только заполняю CMAKE_BUILD_TYPE
переменная и установите его в release
(для более оптимизированных настроек компилятора)
Вам нужно будет нажать "c" хотя бы еще один раз (возможно, еще больше, в зависимости от того, что делает скрипт cmake), пока все *
до того, как значения переменных исчезнут. Затем вы можете нажать "g" для генерации make-файлов.
Когда создаются make-файлы, все, вероятно, работает так, как вы ожидаете. Ты можешь сделать make
, make install
, make install DESTDIR=/my/new/dest/dir
,
Помимо пользовательского интерфейса ncurses, существует также пользовательский интерфейс на основе Qt.