2016-02-05 321 views
2

我对C++相当陌生,我在Java中编写了几年。大约一个星期前,我尝试让Boost库与Codeblocks一起工作,并在错误发生后出错。我已经设法修复其中的大部分,但是这一个让我感觉很糟糕。编译时我的代码返回两个错误:C++权限被拒绝错误

ld.exe ||找不到C:\ boost_1_60_0 \ stage \ lib:Permission denied |

|| error:ld returned 1 exit status |

我根本无法弄清楚如何解决这个问题,我一直在网上寻找帮助的日子。从我已经弄清楚的情况来看,拒绝错误的权限是由于(错误提示)没有访问目录的权限,但我在网上找到的修复程序都没有工作。

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

#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; 
} 

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

生成设置:

enter image description here

+0

也许您以管理员身份安装了Boost,并且您的普通用户无权访问该目录或其内容。你可以看看'C:\ boost_1_60_0 \ stage \ lib'目录中的内容与试图构建程序的用户吗? – Paulo1205

+0

是的,我可以查看C:\ boost_1_60_0 \ stage \ lib的全部内容。 – Sova

+0

我以为编译器(链接器)是由用户运行的,他们没有权限访问这些目录,这可能会导致错误。你能告诉我们这个目录有什么权限(例如通过运行'ls -l'命令)。 –

回答

0

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

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