error: reference to ‘XXX’ is ambiguous

error: reference to ‘DataType’ is ambiguous
 ICudaEngine* createEngine(unsigned int maxBatchSize, IBuilder* builder, IBuilderConfig* config, DataType dt)

这个问题很奇怪,没有明显错误。找了一会儿定位问题在命名空间的问题。
我把开头的

using namespace cv;
using namespace std;

这两行注释掉就解决问题了。

所以总结问题应该是:
tensorrt与std或者cv里面的类型或者函数有一样的名字导致的冲突。然后就是去掉using namespace,后面加作用域,比如std::,cv::Mat等。

好记性不如烂键盘---点滴、积累、进步!
原文地址:https://www.cnblogs.com/yanghailin/p/14788672.html