makefile - secundario - instalar programas por defecto en otro disco
cómo modificar la ruta de instalación sin volver a ejecutar el script de configuración/cmake (5)
Ejecutar CMake con -DCMAKE_INSTALL_PREFIX=<somewhere different to last time>
no debería hacer que tu proyecto necesite ser recompilado. Si pasa otros parámetros de la línea de comandos a CMake que, por ejemplo, modifican los indicadores del compilador, eso forzaría una reconstrucción de los objetivos afectados, pero simplemente no cambiaría el prefijo de instalación.
Estoy trabajando en un proyecto que toma un tiempo considerable para construir (10-15) minutos. He recompilado para verificar si hay un error de compilación. Ahora quiero cambiar el directorio de instalación para tener una nueva versión del ejecutable con los nuevos cambios. ¿Existe un método para modificar la ruta de instalación de manera que ''make install'' se instale en una nueva ubicación en lugar de la anterior?
En caso de que alguien no esté usando CMake, entonces hay un método para hacerlo en Makefile. Si tiene el archivo Makefile.config generado en su directorio de compilación, busque el prefix
. Este prefix
es la path
instalación donde se instalarán los binarios / encabezados, etc. Cambiar esto instalará los binarios / encabezados a la path
modificada.
La definición canónica de DESTDIR y prefijo es: los archivos se instalan con el prefijo $ DESTDIR $, pero se preparan como si su ubicación de instalación final fuera solo $ prefijo.
Por lo tanto, DESTDIR es solo para personas que construyen paquetes o archivos comprimidos de binarios; CMAKE_INSTALL_PREFIX es para cualquier persona que quiera especificar dónde deben residir los binarios construidos al final.
No sé si esto es generalmente cierto, pero puedo dar un ejemplo de una aplicación para la cual la respuesta aceptada de sakra
no funciona correctamente. Si modifica el directorio de instalación modificando DESTDIR
al instalar ITK, simplemente DESTDIR
a su ruta de instalación ya formada:
make install DESTDIR=/opt/local
[...]
-- Installing: /opt/local/usr/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Por otro lado, siguiendo esta respuesta de Fraser
obtendrán rutas de instalación adecuadas sin recompilación:
cmake -DCMAKE_INSTALL_PREFIX=/opt/local /path/to/ITK_source
make install
[...]
-- Installing: /opt/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Los makefiles generados por CMake son compatibles con la convención de codificación DESTDIR para los makefiles. Por lo tanto, puede anular la ubicación de instalación predeterminada configurando la variable DESTDIR
al invocar make:
$ make install DESTDIR=/opt/local
No hay necesidad de volver a ejecutar CMake.