0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于libconfig进行配置文件解析

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-06-08 10:18 次阅读

本文转自公众号,欢迎关注

基于libconfig进行配置文件解析 (qq.com)

准备

官网

https://hyperrealm.github.io/libconfig/

源码

git clone https://github.com/hyperrealm/libconfig.git

在自己工程中使用

这里基于VS2022,其他环境类似。

库方式

打开libconfig\\libconfig_vs2017.sln

图片

点击左侧工程目录解决方案

菜单栏 生成->生成解决方案

图片

生成的库文件位于libconfig\\build\\x64下的

libconfigd.lib

libconfigd.dll

还有一些测试程序

比如命令行下./c_example1d.exe可以运行测试程序

图片

在自己的工程目录添加libconfig文件夹,添加inc和lib子目录

将libconfigd.lib

libconfigd.dll

复制到lib目录下

将源码路径libconfig\\lib下所有的h文件复制到自己的inc目录下

右键点击工程名->属性

设置头文件包含路径

$(MSBuildProjectDirectory)\\Src\\libconfig\\inc;

设置库文件包含路径

$(MSBuildProjectDirectory)\\Src\\libconfig\\lib;

图片

设置链接的库

图片

测试代码

#include < stdio.h >


#include < stdlib.h >


#include < libconfig.h >


#include "param_cfg.h"


int main(int argc, char** argv)
{


config_t cfg;


config_setting_t* setting;


int version;


int pid;


int vid;


config_init(&cfg);


/* 读配置文件. */


if (!config_read_file(&cfg, "wq.cfg"))


{


fprintf(stderr, "%s:%d - %s\\n", config_error_file(&cfg),


config_error_line(&cfg), config_error_text(&cfg));


config_destroy(&cfg);


return(EXIT_FAILURE);


}


/* 获取版本信息. */


if (config_lookup_int(&cfg, "version", &version))


printf("version: %d\\n\\n", version);


else


fprintf(stderr, "No 'version' setting in configuration file.\\n");


/* Output a list of all books in the inventory. */


setting = config_lookup(&cfg, "id");


if (setting != NULL)


{


config_setting_lookup_int(setting, "pid", &pid);


config_setting_lookup_int(setting, "vid", &vid);


}


printf("pid=%#x;vid=%#x\\r\\n",pid,vid);


config_destroy(&cfg);


return(EXIT_SUCCESS);


}

Exe所在目录创建配置文件wq.cfg

// 配置文件.


// 版本:


version = 10;


// PID&VID:


id =


{


pid = 0x1993;


vid = 0x0101;


};

将libconfigd.dll复制到exe所在目录。

看到打印如下

version: 10


pid=0x1993;vid=0x101

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18955

    浏览量

    301676
  • 文件
    +关注

    关注

    1

    文章

    560

    浏览量

    24657
  • 源码
    +关注

    关注

    8

    文章

    632

    浏览量

    29100
收藏 人收藏

    评论

    相关推荐

    探讨PROE的配置文件——系统配置文件config.pro

    PROE的配置文件让不少初学者感到烦恼,尽管不少教材里都会提到关于PROE的配置文件。但大多数显得过于理论化,而不便于初学者理解,可操作性不强。本文力求以通俗的语言结合
    发表于 09-28 15:50 0次下载

    ICD配置文件的详细介绍和配置内容的详细概述

    配置文件配置文件是利用SCL语言描述变电站设备对象模型后生成的文件,用于在不同厂商的配置工具之间交换配置信息。
    的头像 发表于 06-02 11:16 1.8w次阅读
    ICD<b class='flag-5'>配置文件</b>的详细介绍和<b class='flag-5'>配置</b>内容的详细概述

    SHARC音频模块:配置文件对裸机框架进行配置的重要性

    详细介绍如何从一个配置文件配置裸机框架的重要方面。
    的头像 发表于 06-27 06:02 2354次阅读
    SHARC音频模块:<b class='flag-5'>配置文件</b>对裸机框架<b class='flag-5'>进行</b><b class='flag-5'>配置</b>的重要性

    Keil的黑色界面配置文件配置方法

    本文档的主要内容详细介绍的是Keil的黑色界面配置文件配置方法。
    发表于 12-03 15:05 26次下载

    Python进行配置文件的教程免费下载

    本文档的主要内容详细介绍的是Python进行配置文件的教程免费下载。
    发表于 09-30 16:41 6次下载
    Python<b class='flag-5'>进行</b><b class='flag-5'>配置文件</b>的教程免费下载

    AD8283评估板设计和配置文件

    AD8283评估板设计和配置文件
    发表于 05-31 16:04 9次下载
    AD8283评估板设计和<b class='flag-5'>配置文件</b>

    labview读写配置文件实例分享

    labview读写配置文件实例分享
    发表于 11-01 16:05 45次下载

    怎样使用配置文件修改镜像源

    /use-condarc.html#show-channel-urls-show-channel-urls   使用配置文件修改镜像源 使用 conda info 命令查看 .condarc 配置文件
    发表于 12-13 16:01 1076次阅读

    SpringBoot配置文件application

    Map配置 YML配置文件: sys-num: mymap: "{'a':'aaa','b':'bbb'}" 方法内: public class learnMap { @Value
    的头像 发表于 01-13 15:28 601次阅读

    如何利用apollo实现配置文件的灰度发布?

    如今,微服务架构盛行下,不管是互联网大厂,还是规模较小的团队,都有一套自己的中央配置文件管理中心,各个微服务模块都能接入中央配置文件进行统一的使用
    的头像 发表于 02-16 10:09 1114次阅读

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳
    的头像 发表于 10-20 15:04 522次阅读
    KT142C语音芯片<b class='flag-5'>配置文件</b>总是不起作用?<b class='flag-5'>配置文件</b>的问题集中归纳

    linux修改网卡ip配置文件

    Linux是一种开源的操作系统,因此,它给用户提供了很高的自由度,可以根据个人需要进行各种定制和配置。其中,修改网络接口配置文件是常见的操作,可以通过修改网卡ip配置文件来设置网络接口
    的头像 发表于 11-17 10:51 2073次阅读

    springboot的全局配置文件有几种

    Spring Boot是一种快速开发框架,其通过提供配置文件来实现对应用程序的配置。全局配置文件在Spring Boot中起着非常重要的作用,可以用于配置各种不同的属性,包括数据库连接
    的头像 发表于 12-03 15:28 1478次阅读

    zookeeper的核心配置文件是什么

    Zookeeper是一个常用的分布式协调服务,它被广泛应用于大型分布式系统中。Zookeeper的核心配置文件是zoo.cfg,它包含了Zookeeper服务器的各种配置参数,可以通过修改这些参数
    的头像 发表于 12-04 10:33 703次阅读

    php的配置文件是什么

    PHP的配置文件是一种用于配置PHP解释器的文本文件。它包含了一系列的指令和选项,用于影响PHP的行为和性能。通过修改配置文件,可以改变PHP解释器的默认行为,从而满足不同的需求。 在
    的头像 发表于 12-04 15:55 1434次阅读