visual studio编译qt+libtorch,载入模型时报错。
出错信息:
使用visual studio 编译QT+libtorch报错
未加载kernelbase.pdb,kernelbase.pdb 包含查找模块 KernelBase.dll 的源文件所需的调试信息。
0x00处(位于 view64.exe 中)有未经处理的异常: Microsoft C++ 异常: std::length_error,位于内存位置 0x00 处。
原因:
libtorch版本与QT编译器不匹配。例如,Debug版本的libtorch必须使用QT Debug版本进行编译。如果不匹配,有些功能例如tensor可以正常使用,但是加载模块MODULE时会报错。
解决方法:
修改QT编译器或Libtorch编译版本,使其一致。
可以用以下代码测试
#undef slots #include#include #define slots Q_SLOTS int main(int argc, char* argv[]) { //test torch auto device = torch::Device(torch::kCUDA); auto model = ConvReluBn(3, 4, 3);//自己写好的模块 //test qt QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }



