交叉编译支持arm64-linux版本的libuuid库

327 阅读2分钟
  • 目前在ARM开发板上需要用uuid的库用来生成唯一识别码,而我们选择了libuuid。 ‌libuuid是一个用于生成通用唯一标识符(UUID)的C库。UUID是一个128位的数值,用于唯一标识计算机系统上的对象和实体,通常以字符串的形式表示‌1。libuuid提供了生成和操作UUID的函数,使得在程序中使用UUID变得更加简单和高效。
  • 下面是编译的一些步骤:
  1. 准备交叉编译环境

    在开始交叉编译之前,需要确保你的系统上已经安装了交叉编译工具链。交叉编译工具链通常包括编译器、链接器等工具,这些工具用于生成能在目标平台上运行的二进制文件。你需要根据你的情况安装合适的工具链。

  2. 获取 libuuid 源代码

    下载libuuid源码,你可以在libuuid下载。

  3. 配置交叉编译参数

    libuuid的目录中有一个configure用来配置编译项,在配置编译参数时,你需要指定交叉编译工具链。以下是一个配置交叉编译参数的示例:

    ./configure --prefix=\$PWD/install CC=aarch64-linux-gnu-gcc  --host=aarch64-linux-gnu
    

    在这个示例中,--host 参数指定了目标平台的架构,--prefix 参数指定了安装目录,--enable-shared 和 --disable-static 参数用于生成动态库而不是静态库。

  4. 执行交叉编译命令

    make && make install
    

    这条命令将把编译好的库文件安装到指定的目录。你可以检查该目录以确保库文件已经正确生成。

  5. 编译成果

    这是在你的源码目录下面会生成一个install的目录,如下图: 2025-01-13_172657_745.png install目录中结构如下:

    2025-01-13_172935_504.png

  6. 测试

    测试代码如下:

    #include <uuid/uuid.h>
    #include <stdio.h>
    
    int main() {
        uuid_t uuid;
        char uuid_str[37];
    
        uuid_generate(uuid);
        uuid_unparse(uuid, uuid_str);
    
        printf("Generated UUID: %s\n", uuid_str);
    
        return 0;
    }
    

    编译测试

    arm-linux-gnu-gcc -o test_uuid test_uuid.c -L/path/to/uuid/install/lib -luuid
    

    编译会生成一个test_uuid的二进制文件,然后,将生成的 test_uuid 可执行文件传输到目标平台并运行它。如果一切正常,你应该能看到生成的 UUID。