【发布时间】: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 上的所有用户(即使只有我自己)都可以完全访问相关目录,以防万一。错误仍然存在。
-
一种解决方案是以管理员身份运行代码块