CMAKE_INSTALL_PREFIX环境变量 - 不起作用?

war*_*iuc 8 c++ cmake

一些信息来源说:

您可以通过设置CMAKE_INSTALL_PREFIX环境变量来更改安装目录(前缀)

如果我在一个文件中:

export CMAKE_INSTALL_PREFIX=$KDEDIR
Run Code Online (Sandbox Code Playgroud)

然后获取它,并检查CMAKE_INSTALL_PREFIX环境变量是否设置,当我这样做:

vic@wic:~/kde/build/kde-workspace$ cmake ../../src/kde-workspace/
Run Code Online (Sandbox Code Playgroud)

然后:

vic@wic:~/kde/build/kde-workspace$ make install
Run Code Online (Sandbox Code Playgroud)

它试图将文件安装到系统目录.

如果我指定CMAKE_INSTALL_PREFIX为cmake的参数:

vic@wic:~/kde/build/kde-workspace$ cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR ../../src/kde-workspace/
Run Code Online (Sandbox Code Playgroud)

然后make install工作正常 - 安装文件到$KDEDIR

文档是否有可能设置具有相同名称的环境变量,或者我做错了什么?

sak*_*kra 9

CMAKE_INSTALL_PREFIX 必须设置为CMake变量:

cmake -DCMAKE_INSTALL_PREFIX:PATH=/path/to/installation/directory ..
Run Code Online (Sandbox Code Playgroud)

但CMake的也支持使用DESTDIR环境变量:

export DESTDIR=/path/to/installation/directory
make install
Run Code Online (Sandbox Code Playgroud)

  • 虽然如果设置了CMake确实使用了'DESTDIR`,但它不会忽略`CMAKE_INSTALL_PREFIX`; 相反,它连接起来.因此,使用此示例,您最终将安装到`/ path/to/installation/directory/usr/local /`.当然你可以将`CMAKE_INSTALL_PREFIX`设置为空,但如果这是一个有用的可能性,那么你也可以将其设置为所需的路径. (4认同)