代码之家  ›  专栏  ›  技术社区  ›  saga

Cmake不尊重Cmake\u INSTALL\u PREFIX的值

  •  1
  • saga  · 技术社区  · 6 年前

    我正在尝试从源代码安装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
    

    是否有类似的cmake变量 CMAKE_INSTALL_PREFIX CMAKE_INSTALL_LIBDIR 我需要指定 share 数据

    1 回复  |  直到 6 年前
        1
  •  2
  •   Community CDub    4 年前

    你会有 CMAKE_INSTALL_DATADIR 对于 share 使用cmake模块时:包括( GNUInstallDirs )

    注意:使用时 cmake --build build --target install -- DESTDIR=foo 请阅读CMAKE\u INSTALL\u PREFIX文档

    在UNIX上,可以使用DESTDIR机制来重新定位整个安装。DESTDIR表示目标目录。

    警告:DESTDIR不能在Windows上使用,因为安装前缀通常包含类似于C:/Program文件中的驱动器号,不能用其他前缀作为前缀。

    src: https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html#variable:CMAKE_INSTALL_PREFIX