最终目标是允许最终用户/管理员通过CLI开关(即"--foo=31 --bar=0"
)和/或配置文件(即cat /etc/blah.conf -> "foo=31\nbar=0\n"
)的组合来设置程序选项。有问题的语言是c ++,尽管许多语言并不是很重要。从ARMv6(Raspberry Pi)到x86_64,目标是GNU / Linux。
有两个明显的解决方案,使用基本标准库功能编写argc / v和conf文件解析器; OR ,使用现有的库libconfig。我过去的做法一直是使用库而不是重新发明轮子;但是,这是我第一次针对嵌入式平台。这让我想知道手写这段代码所涉及的浪费和错误风险是否超过了更少依赖关系和可能更小代码的好处。
那么问题是,在这种情况下,该怎么办?并且,在评估库与滚动自己的多平台代码之间的选择时,是否有经验法则?
答案 0 :(得分:1)
我理解你的痛苦:开发时间/便利与足迹。 就个人而言,我坚信只要您选择积极维护的包,使用现有的包最终总是有益的。 Libconfig似乎不那么活跃,在我的书中,对于成熟的软件包来说仍然是一个可接受的状态。
对于嵌入式Linux,就足迹而言,您必须考虑更大的图景。您的应用程序是唯一需要libconfig的人吗? rootfs上的其他应用程序是否需要像libxml这样的东西?在这种情况下 - 使用libxml。因此,请检查您的rootfs是否有类似的库。
其次,你说的是约。 150kB磁盘空间。真的值得经历所有麻烦吗?有大量的包装比这大,所以能够从列表中剥离另一个包可能是一个更好的方式来花费你的努力。 不要担心RAM的使用 - 这将更少。 Linux只会在使用时从磁盘加载代码和数据页。