【问题标题】:log4cplus file cannot create directory administrative privilegeslog4cplus 文件无法创建目录管理权限
【发布时间】:2018-08-29 10:25:24
【问题描述】:

我正在尝试使用 Cmake 安装 Log4Cplus。

首先我将 log4cplus 下载到一个名为 3rdparty 的目录中

git clone https://github.com/log4cplus/log4cplus.git --recursive

稍后在常见的 CMakeLists.txt 中我做了以下操作

cmake_minimum_required (VERSION 3.4)
enable_testing()
include(USR_macros_and_functions.cmake)

project (unixpackages)
USR_init_project(unixpackages)
#other packages ...
add_subdirectory(3rdParty/log4cplus)
 #other packages ...
USR_add_build_repo_targets()

问题是当我尝试构建时出现以下错误:

-- Installing: /home/compilation/UnixPackagesFareShopping/Output_API/Lib/libvalidator.so
-- Removed runtime path from "/home/compilation/UnixPackagesFareShopping/Output_API/Lib/libvalidator.so"
CMake Error at 3rdParty/log4cplus/src/cmake_install.cmake:36 (file):
  file cannot create directory: /usr/local/lib64/cmake/log4cplus.  Maybe need
  administrative privileges.
Call Stack (most recent call first):
  3rdParty/log4cplus/cmake_install.cmake:37 (include)
  cmake_install.cmake:48 (include)

我知道我无权将它安装到 /usr/local/lib64/cmake/ 但问题是我不知道我应该在哪里更改路径以将其指向我有权安装它的目录进入。

我尝试查看是否可以在我只找到这个的所有配置和 cmake 文件中找到 lib64

./configure:  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
./configure:  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
./m4/libtool.m4:  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,

我是 cmake 的新手,很抱歉这个问题

【问题讨论】:

  • 你的意思是在安装过程中?能否将CMAKE_INSTALL_PREFIXwhile 配置设置为您有写入权限的位置,然后重试?
  • 我在 log4cplus 的 CMakeLists.txt 文件中添加了 SET(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/3rdparty/log4cplus) 但没有用。我还发现了类似 ./configure --prefix=/usr/local/httpd 但我不知道应该把它放在哪里。我不想在命令行中添加任何东西
  • 变量CMAKE_INSTALL_PREFIX 影响整个项目,包括子项目。 (也就是说,您不能将您的文件安装在/usr/local 下,但将与 log4cplus 相关的文件安装到非系统位置)。有关正确设置 CMAKE_INSTALL_PREFIX 变量的信息,请参阅 that question。 (引用的问题对命令行和CMakeLists.txt 文件的修改都有答案。)
  • Annnd 它工作了dd 谢谢@Tsyvarev 我做了以下事情:set (CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/3rdParty/log4cplusclea CACHE PATH "Cmake prefix" FORCE)

标签: cmake log4cplus


【解决方案1】:

如评论所述,您可以使用 CMake 调整安装位置,只需使用 CMAKE_INSTALL_PREFIX 变量(请参阅this question 的答案)。您可以将此变量设置为您可以访问的位置,以便最终将软件安装在该位置。

您可以在调用cmake 时在命令行上设置CMAKE_INSTALL_PREFIX 变量,或者在CMake 文件本身中任何对project 的调用之前设置,就像您所做的那样:

set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/3rdParty/log4cplusclea)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2022-01-15
    • 2012-09-07
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多