我工作的一个项目,这需要相当长的时间来建立(10-15)分钟。 我已经重新编译,以验证是否存在编译错误。 现在我想更改安装目录,以便我有可执行新版本有了新的变化。 是否有只修改安装路径,以便“使安装”安装到新的位置,而不是旧的方法?
Answer 1:
CMake的生成的makefile支持DESTDIR编码约定的makefile文件。 因此,你可以通过设置覆盖缺省安装位置DESTDIR
时调用make变量:
$ make install DESTDIR=/opt/local
有没有必要重新运行CMake的。
Answer 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[...]
Answer 3:
与运行CMake的-DCMAKE_INSTALL_PREFIX=<somewhere different to last time>
应该不会造成你的项目需要重新编译。 如果您通过其他命令行参数的CMake其中例如改变编译器标志,这将迫使重建的受影响的目标,而只是改变安装前缀不会。
Answer 4:
DESTDIR和前缀的规范定义是:文件安装到$ DESTDIR $前缀,但是准备,好像他们的最终安装位置只是$前缀。
所以DESTDIR只是为人们构建软件包或二进制文件的压缩包; CMAKE_INSTALL_PREFIX是谁想要以指定生成的二进制文件应该生活在年底。
Answer 5:
为了以防万一,如果有人没有使用CMake的则有做,在Makefile文件的方法。 如果你在你的build目录生成Makefile.config文件,找到prefix
。 这个prefix
是安装path
,其中的二进制文件/头文件等将被安装。 改变这将安装二进制文件/头,以修改后的path
。
文章来源: how to modify the install-path without running the configure script/cmake again