错误:‘AT_CHECK’ was not declared in this scope; did you mean ‘DCHECK’?

一、声明与致谢

1.1 问题概述(省时间看这)

      在编译的时候如指令该指令python setup.py build_ext --inplace(举例子),之后报错错误:‘AT_CHECK’ was not declared in this scope; did you mean ‘DCHECK’?改怎么办?

        去src文件夹里打开所有.cpp,在最前面添加:

#ifndef AT_CHECK
#define AT_CHECK TORCH_CHECK 
#endif

  1.2 致谢

对@hailanyi和@laizi_laizib两位博主表达感谢,本博文方法来自于二位博主,我只是做一个整理。

二、我的废话分析版

        我是参考另一个博主的内容整理而成:error: ‘AT_CHECK’ was not declared in this scope解决方法-优快云博客

        大概是说,前面的方法已经被弃用了,要用后面的方法了,不过对于我这种菜鸟,找了半天博主说的位置才找到,甚至不知道改哪,所以为了帮助新手,我整理了一份更详细的教程

        举例,我编译的是DBNet中需要用到的一个cpp文件产出的错误,在执行这个指令的时候

python setup.py build_ext --inplace

大家的情况可能不是因为DBNet,如果不是该方法应该也有帮助。执行在一堆信息中找到了报错信息:

错误:‘AT_CHECK’ was not declared in this scope; did you mean ‘DCHECK’?

        意思是就是 AT_CHECK被弃用了,需要用TORCH_CHECK方法,但是不知道要改什么文件,既然是编译,那应该是c/c++了,我只熟悉python,这些都是猜的,不过好在最后找到了(方法是所有文件都打开看看)

        需要改的文件路径在:

文件路径在你需要编译的文件夹下的名为src的目录中,比如我的就是/DB/assets/ops/dcn/src

之后你会发现有.cpp文件,我的是这样的,有两个,大家的可能不一样

打开两.cpp的文件,之后分别在文件的最上面添加下面的代码,(这个方法来自于@laizi_laizib博主,他把方法写在了最上面提到的链接里的评论区,我整理了出来)之后保存即可成功编译。

#ifndef AT_CHECK
#define AT_CHECK TORCH_CHECK 
#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值