opencv-2.4.5 编译异常处理

抛出异常:

OpenCV-2.4.3/modules/features2d/src/freak.cpp:437: error: unable to find a register to spill in class 'GENERAL_REGS'

/cs/research/crest/projects1/ucacbbl/OpenCV-2.4.3/modules/features2d/src/freak.cpp:437: error: unable to find a register to spill in class GENERAL_REGS
/cs/research/crest/projects1/ucacbbl/OpenCV-2.4.3/modules/features2d/src/freak.cpp:437: error: this is the insn:
(insn:HI 1685 1684 1686 131 (parallel [
            (set (subreg:DI (reg:V16QI 21 xmm0 [848]) 0)
                (ior:DI (reg:DI 1 dx [832])
                    (reg:DI 4 si [839])))
            (clobber (reg:CC 17 flags))
        ]) 315 {*iordi_1_rex64} (insn_list:REG_DEP_TRUE 1660 (insn_list:REG_DEP_TRUE 1659 (nil)))
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (expr_list:REG_DEAD (reg:DI 4 si [839])
                (expr_list:REG_DEAD (reg:DI 1 dx [832])
                    (nil))))))



下文给出了解决方案:

http://www0.cs.ucl.ac.uk/staff/ucacbbl/opencv-2.4.3/

————————————————————————

This bug has been reported in stackoverflow.com.
  Being unable to find a register to spillappears to be a problem with some versions of gcc(bugzilla 35135).


http://stackoverflow.com/questions/13580485/error-in-making-opencv

的说明:


YOUR_BUILD_DIR/modules/features2d/CMakeFiles/opencv_features2d.dir/build.make

Search for freak.cpp. You find three blocks: Building CXX..., Preprocessing CXX..., and Compiling CX.... I just needed to change the Building part. The last line of that block looks like this:

.... YOUR_COMPILER $(CXX_DEFINES) $(CXX_FLAGS) ...

and if you check you find out that CXX_FLAGS has a -O3 in it. If you add -O0 after CXX_FLAGS it suppresses the O3. So your lines should look like this.

.... YOUR_COMPILER $(CXX_DEFINES) $(CXX_FLAGS) -O0 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值