bjam编译boost失败及原因

bjam编译boost失败及原因

(转载请注明来源于金庆的专栏)

用bjam在各种环境下编译Boost , 没有十次也有八次了,
但是前两天在一台XP上编译时,竟然失败。

查看输出,竟然是在创建目录时失败。信息如下:

MkDir1 stage
    mkdir "stage"
...failed MkDir1 stage...
...skipped stage/lib for lack of stage...

因为是用mingw的gcc编译,开始时以为是mingw的环境有问题,
实际结果是找错了方向。
mingw已经有过成功先例,而且新装一台机器后编译也成功了。
Google类似错误也没有什么线索。

变通方法是用bjam -n打印出所有命令到一个批处理文件,
然后执行批处理来编译。

用该方法创建了所有的目录,使MkDir1规则通过了,
但是下一个错误是common.copy规则,看来所有的命令都会出错。

但是不甘心用这个方法,不能向错误屈服。
最后还是在bjam的源代码中找到了线索。

原来一条规则会建立一个命令,
然后在NT上会在用户的Temp目录下创建一个临时bat文件,
运行该bat文件执行命令。

使用bjam -d2或-d3,-d4可以打印出1到2、3、4级的调试信息,
在4级信息内可以看到创建并运行的临时批处理。

因为该机器在很早以前被我设置权限,禁止了在Temp运行程序的权力,
所以产生了这个错误。
(禁止Temp运行程序对病毒木马是否有点作用呢?
还是去掉限制好了,因为有些程序确实会用到。)

放开权限就好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值