I am working on a project which takes considerable time to build (10-15) minutes. I have recompiled to verify if there is a compilation error. Now I want to change the install directory so that I have a new version of executable with the new changes. Is there a method to just modify the install path so that the 'make install' installs to a new location rather than the old one?
相关问题
- Avoid cmake to add the flags -search_paths_first a
- CMakeList file to generate LLVM bitcode file from
- How to fix NDK build error for HelloCardboard samp
- Linking against GLEW with CMake
- Makefile to compile lists of source files
相关文章
- Target requires the language dialect “CXX17” (with
- How to arrange a Makefile to compile a kernel modu
- Makefile and use of $$
- How do I tell cmake not to create a console window
- Makefile: all vs default targets
- What is config.log on osx and where does it live?
- Automake Variables to tidy up Makefile.am
- How do I check the exit status of a Makefile shell
The canonical definition of DESTDIR and prefix is: the files are installed to $DESTDIR$prefix, but prepared as if their final install location was just $prefix.
So DESTDIR is only for people building packages or tarballs of binaries; CMAKE_INSTALL_PREFIX is for anyone who wants to specify where the built binaries should live in the end.
Running CMake with
-DCMAKE_INSTALL_PREFIX=<somewhere different to last time>
shouldn't cause your project to need recompiled. If you pass other command line parameters to CMake which e.g. alter the compiler flags, that would force a rebuild of affected targets, but simply changing the install prefix won't.CMake generated makefiles support the DESTDIR coding convention for makefiles. Thus you can override the default installation location by setting the
DESTDIR
variable upon invoking make:There is no need to re-run CMake.
Just in case if someone is not using CMake then there is a method to do that in Makefile. If you have Makefile.config file generated in your build directory, find the
prefix
. Thisprefix
is the installpath
where binaries/headers etc. will be installed. Changing this will install the binaries/headers to the modifiedpath
.I don't know whether this is generally true, but I can give an example of an application for which the accepted answer by
sakra
does not work properly. If you modify the install directory by modifyingDESTDIR
when installing ITK, it will just appendDESTDIR
to its already formed install path:[...]
On the other hand, following this answer by
Fraser
will result in proper install paths without recompilation:[...]