Подтвердить что ты не робот

Как изменить путь установки без повторного запуска configure script/cmake

Я работаю над проектом, который занимает много времени для создания (10-15) минут. Я перекомпилировал, чтобы проверить, есть ли ошибка компиляции. Теперь я хочу изменить каталог установки, чтобы у меня была новая версия исполняемого файла с новыми изменениями. Есть ли способ просто изменить путь установки так, чтобы "make install" устанавливался в новое место, а не в старое?

4b9b3361

Ответ 1

Созданные с помощью CMake make файлы поддерживают соглашение о кодировании DESTDIR для make файлов. Таким образом, вы можете переопределить местоположение установки по умолчанию, установив переменную DESTDIR при вызове make:

$ make install DESTDIR=/opt/local

Нет необходимости повторно запускать CMake.

Ответ 2

Я не знаю, является ли это вообще правдой, но я могу привести пример приложения, для которого принятый ответ sakra работает неправильно, Если вы измените каталог установки, изменив DESTDIR при установке ITK, он просто добавит DESTDIR к уже сформированному пути установки:

make install DESTDIR=/opt/local

[...]

-- Installing: /opt/local/usr/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]

С другой стороны, после этого ответа на Fraser приводятся правильные пути установки без перекомпиляции:

cmake -DCMAKE_INSTALL_PREFIX=/opt/local /path/to/ITK_source
make install

[...]  

-- Installing: /opt/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]

Ответ 3

Запуск CMake с -DCMAKE_INSTALL_PREFIX=<somewhere different to last time> не должен приводить к перекомпиляции вашего проекта. Если вы передадите другим параметрам командной строки в CMake, например, изменить флаги компилятора, что приведет к восстановлению затронутых целей, но просто изменить префикс установки не будет.

Ответ 4

Каноническое определение DESTDIR и префикса: файлы установлены в префикс $DESTDIR $, но подготовлены так, как будто их окончательное место установки было всего $префиксом.

Итак, DESTDIR предназначен только для людей, создающих пакеты или архивы бинарных файлов; CMAKE_INSTALL_PREFIX предназначен для тех, кто хочет указать, где в итоге должны быть созданы встроенные двоичные файлы.

Ответ 5

На всякий случай, если кто-то не использует CMake, тогда есть способ сделать это в Makefile. Если файл Makefile.config создан в каталоге сборки, найдите prefix. Это prefix - это установка path, где будут установлены двоичные файлы/заголовки и т.д. Изменение этого параметра установит двоичные файлы/заголовки в измененный path.