A. *_* K. 32 makefile configure cmake build-system
我正在开展一个需要相当长时间才能建成(10-15)分钟的项目.我已重新编译以验证是否存在编译错误.现在我想更改安装目录,以便我有一个新版本的可执行文件和新的更改.有没有一种方法可以修改安装路径,以便'make install'安装到新位置而不是旧位置?
sak*_*kra 46
CMake生成的makefile支持makefile的DESTDIR编码约定.因此,您可以通过DESTDIR
在调用make时设置变量来覆盖默认安装位置:
$ make install DESTDIR=/opt/local
Run Code Online (Sandbox Code Playgroud)
没有必要重新运行CMake.
kar*_*niz 18
我不知道这是否是普遍事实,但我可以给它的应用的一个例子接受的答案被sakra
不正常.如果通过修改DESTDIR
安装ITK时修改安装目录,它只会附加DESTDIR
到已经形成的安装路径:
make install DESTDIR=/opt/local
Run Code Online (Sandbox Code Playgroud)
[...]
-- Installing: /opt/local/usr/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Run Code Online (Sandbox Code Playgroud)
在另一方面,下面的这个答案通过Fraser
将导致无需重新编译正确的安装路径:
cmake -DCMAKE_INSTALL_PREFIX=/opt/local /path/to/ITK_source
make install
Run Code Online (Sandbox Code Playgroud)
[...]
-- Installing: /opt/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Run Code Online (Sandbox Code Playgroud)
Fra*_*ser 13
运行CMake -DCMAKE_INSTALL_PREFIX=<somewhere different to last time>
不应该导致您的项目需要重新编译.如果将其他命令行参数传递给CMake,例如更改编译器标志,则会强制重建受影响的目标,但只是更改安装前缀不会.
小智 9
DESTDIR和前缀的规范定义是:文件安装到$ DESTDIR $前缀,但准备好它们的最终安装位置只是$前缀.
所以DESTDIR只适用于构建二进制文件包或tarball的人; CMAKE_INSTALL_PREFIX适用于任何想要指定构建的二进制文件最终应该存在的位置的人.