UUID 是指Universally Unique Identifier,翻译为中文是通用唯一识别码,UUID 的目的是让分布式系统中的所有元素都能有唯一的识别信息。如此一来,每个人都可以创建不与其它人冲突的 UUID,就不需考虑数据库创建时的名称重复问题。
集成过程如下:
1、ubuntu系统安装uuid
sudo apt-get install uuid-dev
2、cmakelist.txt里,链接libuuid.so。不链接的话会报错libuuid.so.1:error adding symbols: DSO missing from command line。注意添加时,只保留uuid。如下:
target_link_libraries(main nvinfer ${OpenCV_LIBS} ${CUDA_LIBS} ${TORCH_LIBRARIES} nvonnxparser nvinfer_plugin yolov5_trt cudart yaml-cpp decodeplugin uuid)
3、工程中添加以下头文件
#ifndef _CREATE_UUID_H_ #define _CREATE_UUID_H_ #include#ifdef WIN32 #include #else #include #include #include #include #include typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4[8]; }GUID; #endif inline std::string create_uuid() { GUID guid; #ifdef WIN32 CoCreateGuid(&guid); #else uuid_generate(reinterpret_cast (&guid)); #endif std::string format; format = "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X"; char buf[64] = { 0 }; #ifdef __GNUC__ snprintf( #else _snprintf_s( #endif buf, sizeof(buf), format.c_str(), guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]); return std::string(buf); } #endif
4、工程里具体使用,即相应位置使用下面一句,生成得到uuid
string uuidstr= create_uuid();



