【问题标题】:C++ Permission Denied ErrorC++ 权限被拒绝错误
【发布时间】:2016-02-05 20:53:58
【问题描述】:

我是 C++ 的新手,我用 Java 编码已经有几年了。大约一周前,我尝试让 Boost 库与 Codeblocks 一起使用,并且在一个又一个错误中遇到错误。我已经设法修复了其中的大多数,但这个让我陷入困境。我的代码在编译时返回两个错误:

ld.exe||找不到 C:\boost_1_60_0\stage\lib: 权限被拒绝|

||错误:ld 返回 1 个退出状态|

我根本不知道如何解决这个问题,我已经在网上寻找帮助好几天了。据我所知,权限被拒绝错误是由于(如错误所示)缺乏访问目录的权限,但我在网上找到的修复都没有奏效。

这是我的代码,虽然我认为代码与错误无关。

#include "complex.h"
#include <cmath>
using namespace csis3700;

#define BOOST_TEST_MODULE ComplexTests
#define BOOST_TEST_DYN_LINK

#include <boost/test/unit_test.hpp>

const double tol = 0.01;

BOOST_AUTO_TEST_CASE(zero_arg_constructor_should_not_crash) {
    complex c;
}

复数类只是一个模拟复数的类,现在它只是一个空的构造函数。

构建设置:

【问题讨论】:

  • 也许您以管理员身份安装了 Boost,而您的普通用户无权访问该目录或其内容。您能和您尝试构建程序的用户一起查看C:\boost_1_60_0\stage\lib 目录的内容吗?
  • 可以,我可以查看C:\boost_1_60_0\stage\lib的全部内容。
  • 我认为编译器(链接器)可能是由无权访问这些目录的用户运行的,这可能会导致您描述的错误。您能否告诉我们这个目录的权限是什么(例如通过运行ls -l 命令)。
  • 我确保我 PC 上的所有用户(即使只有我自己)都可以完全访问相关目录,以防万一。错误仍然存​​在。
  • 一种解决方案是以管理员身份运行代码块

标签: c++ boost


【解决方案1】:

您的搜索目录不包括该文件夹。仔细检查您的搜索目录选项卡是否填充了“C:\boost_1_60_0\stage\lib”,或者如果您使用的是环境变量,是否在此处正确设置和链接。

另外,该错误特别是因为您正在寻找 boost.lib 作为文件而不是目录。从您当前的链接器设置中删除它并将其移动到搜索目录->链接器选项卡下应该可以解决该错误。

【讨论】:

    【解决方案2】:

    你可能错过了“return 0;”在主文件中。

    【讨论】:

      猜你喜欢
      • 2015-05-13
      • 2018-07-19
      • 1970-01-01
      • 2016-09-25
      • 2015-09-16
      • 2012-02-11
      • 2016-11-14
      • 2016-12-28
      • 2016-10-18
      相关资源
      最近更新 更多