在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。

在Linux下编写生成GUID的程序,如下 guid.c 文件:

#include <stdio.h>
#include <uuid/uuid.h>

void uuid2string(const uuid_t uu, char* const str) // 把uuid转成字符串。
{
    int i;
    for(i=0;i<16;i++)
        sprintf(str+i*2, "%02X",uu[i]);
    return;
}

void main()
{
    int i;
    char buf[200];
    uuid_t uu;

    uuid_generate(uu);

    printf("{");
    for(i=0;i<15;i++)
        printf("%02X-",uu[i]);
    printf("%02X}\n",uu[15]);

    uuid2string(uu, buf);
    printf("%s\n",buf);

    return;
}


编译guid.c文件:

# gcc -o guid guid.c -luuid

如果在编译时出现错误“uuid/uuid.h: No such file or directory”,解决办法:安装 libuuid-devel 软件包。

如下直接用yum命令安装:

[root@localhost]# yum install libuuid-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * epel: mirrors.yun-idc.com
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libuuid-devel.x86_64 0:2.17.2-12.14.el6 will be installed
--> Processing Dependency: libuuid = 2.17.2-12.14.el6 for package: libuuid-devel-2.17.2-12.14.el6.x86_64
--> Running transaction check
---> Package libuuid.i686 0:2.17.2-12.7.el6_3 will be updated
--> Processing Dependency: libuuid = 2.17.2-12.7.el6_3 for package: libblkid-2.17.2-12.7.el6_3.x86_64
--> Processing Dependency: libuuid = 2.17.2-12.7.el6_3 for package: util-linux-ng-2.17.2-12.7.el6_3.x86_64
---> Package libuuid.x86_64 0:2.17.2-12.7.el6_3 will be updated
---> Package libuuid.i686 0:2.17.2-12.14.el6 will be an update
---> Package libuuid.x86_64 0:2.17.2-12.14.el6 will be an update
--> Running transaction check
---> Package libblkid.x86_64 0:2.17.2-12.7.el6_3 will be updated
---> Package libblkid.x86_64 0:2.17.2-12.14.el6 will be an update
---> Package util-linux-ng.x86_64 0:2.17.2-12.7.el6_3 will be updated
---> Package util-linux-ng.x86_64 0:2.17.2-12.14.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package              Arch          Version                   Repository   Size
================================================================================
Installing:
 libuuid-devel        x86_64        2.17.2-12.14.el6          base         84 k
Updating for dependencies:
 libblkid             x86_64        2.17.2-12.14.el6          base        115 k
 libuuid              i686          2.17.2-12.14.el6          base         68 k
 libuuid              x86_64        2.17.2-12.14.el6          base         68 k
 util-linux-ng        x86_64        2.17.2-12.14.el6          base        1.5 M

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       4 Package(s)

Total download size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): libblkid-2.17.2-12.14.el6.x86_64.rpm              | 115 kB     00:00     
(2/5): libuuid-2.17.2-12.14.el6.i686.rpm                 |  68 kB     00:00     
(3/5): libuuid-2.17.2-12.14.el6.x86_64.rpm               |  68 kB     00:00     
(4/5): libuuid-devel-2.17.2-12.14.el6.x86_64.rpm         |  84 kB     00:00     
(5/5): util-linux-ng-2.17.2-12.14.el6.x86_64.rpm         | 1.5 MB     00:04     
--------------------------------------------------------------------------------
Total                                           332 kB/s | 1.9 MB     00:05     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Updating   : libuuid-2.17.2-12.14.el6.x86_64                              1/9
  Updating   : libblkid-2.17.2-12.14.el6.x86_64                             2/9
  Updating   : util-linux-ng-2.17.2-12.14.el6.x86_64                        3/9
  Installing : libuuid-devel-2.17.2-12.14.el6.x86_64                        4/9
  Updating   : libuuid-2.17.2-12.14.el6.i686                                5/9
  Cleanup    : util-linux-ng-2.17.2-12.7.el6_3.x86_64                       6/9
  Cleanup    : libuuid-2.17.2-12.7.el6_3                                    7/9
  Cleanup    : libblkid-2.17.2-12.7.el6_3.x86_64                            8/9
  Cleanup    : libuuid-2.17.2-12.7.el6_3                                    9/9
  Verifying  : libblkid-2.17.2-12.14.el6.x86_64                             1/9
  Verifying  : util-linux-ng-2.17.2-12.14.el6.x86_64                        2/9
  Verifying  : libuuid-2.17.2-12.14.el6.i686                                3/9
  Verifying  : libuuid-2.17.2-12.14.el6.x86_64                              4/9
  Verifying  : libuuid-devel-2.17.2-12.14.el6.x86_64                        5/9
  Verifying  : libuuid-2.17.2-12.7.el6_3.x86_64                             6/9
  Verifying  : libuuid-2.17.2-12.7.el6_3.i686                               7/9
  Verifying  : util-linux-ng-2.17.2-12.7.el6_3.x86_64                       8/9
  Verifying  : libblkid-2.17.2-12.7.el6_3.x86_64                            9/9

Installed:
  libuuid-devel.x86_64 0:2.17.2-12.14.el6                                       

Dependency Updated:
  libblkid.x86_64 0:2.17.2-12.14.el6   libuuid.i686 0:2.17.2-12.14.el6          
  libuuid.x86_64 0:2.17.2-12.14.el6    util-linux-ng.x86_64 0:2.17.2-12.14.el6  

Complete!
[root@localhost]#
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
In file included from /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi.h:18: In file included from /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi/UefiSpec.h:2222: /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h +1755:12: error: field Guid within 'EFI_HII_KEYBOARD_LAYOUT' is less aligned than 'EFI_GUID' (aka 'GUID') and is usually due to 'EFI_HII_KEYBOARD_LAYOUT' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access] EFI_GUID Guid; ^ 1 error generated. In file included from /home/chen-docker/bin/boot/boot_images/edk2/MdeModulePkg/Library/UefiHiiLib/HiiLib.c:1: In file included from <built-in>:1: In file included from /home/chen-docker/bin/boot/boot_images/Build/LeMansAU/Core/RELEASE_CLANG140LINUX/AARCH64/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib/DEBUG/AutoGen.h:16: In file included from /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi.h:18: In file included from /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi/UefiSpec.h:2222: /home/chen-docker/bin/boot/boot_images/edk2/MdePkg/Include/Uefi/UefiInternalFormRepresentation.h +1755:12: error: field Guid within 'EFI_HII_KEYBOARD_LAYOUT' is less aligned than 'EFI_GUID' (aka 'GUID') and is usually due to 'EFI_HII_KEYBOARD_LAYOUT' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access] EFI_GUID Guid; ^ GNUmakefile:366: recipe for target '/home/chen-docker/bin/boot/boot_images/Build/LeMansAU/Core/RELEASE_CLANG140LINUX/AARCH64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.obj' failed make: *** [/home/chen-docker/bin/boot/boot_images/Build/LeMansAU/Core/RELEASE_CLANG140LINUX/AARCH64/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib/OUTPUT/UefiHiiServicesLib.obj] Error 1 什么错误
07-20

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值