栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ubuntu系统c++工程里生成使用uuid

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ubuntu系统c++工程里生成使用uuid

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();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号