Cmake 不尊重 CMAKE_INSTALL_PREFIX 的价值
Cmake doesn't respect value of CMAKE_INSTALL_PREFIX
我正在尝试从源代码安装 awesome wm。所以我创建了一个构建目录并执行了以下命令:
cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX
但是 make install
试图将一些程序文件放在 /usr/local/share
中,这不是我想要的位置:
> make install
[ 3%] Built target generated_sources
[ 6%] Built target test-gravity
[ 9%] Built target lgi-check
[ 9%] Built target version_stamp
[ 29%] Built target generated_icons
[ 31%] Checking for LGI...
Building for Lua 5.3.
Found lgi 0.9.2.
[ 31%] Built target lgi-check-run
[ 35%] Built target generate_awesomerc
[100%] Built target awesome
Install the project...
-- Install configuration: ""
-- Up-to-date: /home/user/.local/bin/awesome
-- Up-to-date: /home/user/.local/bin/awesome-client
-- Installing: /usr/local/share/awesome/lib
CMake Error at cmake_install.cmake:69 (file):
file INSTALL cannot make directory "/usr/local/share/awesome/lib": No such
file or directory
make: *** [Makefile:107: install] Error 1
我需要为 share
数据指定类似于 CMAKE_INSTALL_PREFIX
或 CMAKE_INSTALL_LIBDIR
的一些 cmake 变量吗?
当使用 cmake 模块时,share
会得到 CMAKE_INSTALL_DATADIR
:include(GNUInstallDirs)
注意:使用cmake --build build --target install -- DESTDIR=foo
时
请阅读 CMAKE_INSTALL_PREFIX 文档
On UNIX one can use the DESTDIR mechanism in order to relocate the whole installation. DESTDIR means DESTination DIRectory.
WARNING: DESTDIR may not be used on Windows because installation prefix usually contains a drive letter like in C:/Program Files which cannot be prepended with some other prefix.
来源:https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html#variable:CMAKE_INSTALL_PREFIX
我正在尝试从源代码安装 awesome wm。所以我创建了一个构建目录并执行了以下命令:
cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX
但是 make install
试图将一些程序文件放在 /usr/local/share
中,这不是我想要的位置:
> make install
[ 3%] Built target generated_sources
[ 6%] Built target test-gravity
[ 9%] Built target lgi-check
[ 9%] Built target version_stamp
[ 29%] Built target generated_icons
[ 31%] Checking for LGI...
Building for Lua 5.3.
Found lgi 0.9.2.
[ 31%] Built target lgi-check-run
[ 35%] Built target generate_awesomerc
[100%] Built target awesome
Install the project...
-- Install configuration: ""
-- Up-to-date: /home/user/.local/bin/awesome
-- Up-to-date: /home/user/.local/bin/awesome-client
-- Installing: /usr/local/share/awesome/lib
CMake Error at cmake_install.cmake:69 (file):
file INSTALL cannot make directory "/usr/local/share/awesome/lib": No such
file or directory
make: *** [Makefile:107: install] Error 1
我需要为 share
数据指定类似于 CMAKE_INSTALL_PREFIX
或 CMAKE_INSTALL_LIBDIR
的一些 cmake 变量吗?
当使用 cmake 模块时,share
会得到 CMAKE_INSTALL_DATADIR
:include(GNUInstallDirs)
注意:使用cmake --build build --target install -- DESTDIR=foo
时
请阅读 CMAKE_INSTALL_PREFIX 文档
On UNIX one can use the DESTDIR mechanism in order to relocate the whole installation. DESTDIR means DESTination DIRectory.
WARNING: DESTDIR may not be used on Windows because installation prefix usually contains a drive letter like in C:/Program Files which cannot be prepended with some other prefix.
来源:https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html#variable:CMAKE_INSTALL_PREFIX