C++之回炉再造笔记--问题记录1

目录

1--vs2017包含目录后,引入头文件失败

2--调试TensorRT程序,报“重写虚函数的限制性异常规范比基类虚成员函数少”的错误

3--编译Tensorrt测试程序时,报“无法解析的外部符号,该符号在函数中被引用”的错误

4--参考


1--vs2017包含目录后,引入头文件失败

可能原因:设置包含目录的平台与实际Debug的平台不一样。

举例:比如一开始本人设置的平台分别是x86和x64,在x64平台设置了包含目录,在x86的平台Debug无法引入头文件。

 解决方法:更改平台,并重新设置包含目录。

2--调试TensorRT程序,报“重写虚函数的限制性异常规范比基类虚成员函数少”的错误

报错截图:

 错误代码:

class Logger : public ILogger
{
	void log(Severity severity, const char* msg) override
	{
		// suppress info-level messages
		if (severity != Severity::kINFO)
			std::cout << msg << std::endl;
	}
} gLogger;

查看原基类虚成员函数ILogger的定义:

解决方法,更改错误代码为:(主要是加上noexcept

class Logger : public ILogger
{
	virtual void log(Severity severity, const char* msg) noexcept override
	{
		// suppress info-level messages
		if (severity != Severity::kINFO)
			std::cout << msg << std::endl;
	}
} gLogger;

3--编译Tensorrt测试程序时,报“无法解析的外部符号,该符号在函数中被引用”的错误

错误截图:

代码:

#include <fstream>
#include <iostream>
#include <sstream>

#include "NvInfer.h"
#include "NvOnnxParser.h"

using namespace nvinfer1;
using namespace nvonnxparser;

class Logger : public ILogger
{
	virtual void log(Severity severity, const char* msg) noexcept override
	{
		// suppress info-level messages
		if (severity != Severity::kINFO)
			std::cout << msg << std::endl;
	}
} gLogger;

int main(int argc, char** argv) {
	std::string onnx_filename = "C:/Users/Admin/Desktop/onnx_engin/train90000_test9000.onnx";
	IBuilder* builder = createInferBuilder(gLogger);
	nvinfer1::INetworkDefinition* network = builder->createNetworkV2(1U << static_cast<uint32_t>(NetworkDefinitionCreationFlag::kEXPLICIT_BATCH));
	auto parser = nvonnxparser::createParser(*network, gLogger);
	parser->parseFromFile(onnx_filename.c_str(), 2);
	for (int i = 0; i < parser->getNbErrors(); ++i)
	{
		std::cout << parser->getError(i)->desc() << std::endl;
	}
	printf("tensorRT load onnx model...\n");

	printf("sucessful!");

	return 0;
}

错误原因及解决方法: 使用了x86平台来Debug编译库,需更改为x64

4--参考

Tensorrt测试程序编写

问题1解决参考

问题2解决参考

问题3解决参考

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值