QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 610|回复: 3

如何提供一个可配置的lib

[复制链接]
发表于 2003-12-1 10:08:15 | 显示全部楼层 |阅读模式
通常我们会大度的直接把自己的代码提供给别人 但也有些时候我们由于种种原因不想这么做 只提供编译好的object是另一个共享的办法
这个时候可配置成为一个问题
一般来说 我们都习惯于用宏定义来设置某个可配置项 可是如果提供的是.h 和.o 这种方式就不起作用
如果采用配置文件的形式 这种方式就大大约束的你的代码 因为你必须根据不同的文件系统平台的操作来约定你的配置文件 而且你的代码中还需要加入大量和基本内容无关紧要的东西
把一个常量放在头文件中作为配置又显然是一种错误 你需要很好的技巧来保证这个常量的定义范围而防止重定义
现在我想到的方法是 配置参数依赖于用户代码中定义的全局常量
也就是 如果用户代码中缺少这些变量 连接就会失败
这样做显然不怎么漂亮
发表于 2003-12-3 03:33:40 | 显示全部楼层
还是配置文件吧.不同平台的二进制程序文件格式不尽相同,你既然只提供二进制版本,那么不同平台版本也不一样,然后为每个平台做一些对应的配置文件.如果要统一配置文件,标准的ASCII编码文件还不至于混乱.
回复

使用道具 举报

 楼主| 发表于 2003-12-3 09:50:11 | 显示全部楼层
终于有人来讨论这个问题了
很多解释性的语言来看 确实是用配置文件好 但对于c/c++做的库这个问题是这样的:首先 这样做需要加入很多和内容无关的i/o代码 对于我的这个目的来看是不希望这样的
而且更严重的是 我考虑的实际上是提供一些用于某类嵌入式平台的公共库的可能性而在某个嵌入式平台上如何配置文件系统 或者是否配置都是未知的
又或者我提供的这个库本身就是对某种存储设备的支持系统
这时候 配置文件的办法就不行了
回复

使用道具 举报

发表于 2003-12-3 23:53:09 | 显示全部楼层
呵呵.感觉是好像是"鸡和蛋"的问题.
可以先开发基于硬件的微程序,实现基本功能,然后"自举",完成整个的构造.类似于用编译器编译编译器.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 06:07 , Processed in 0.074853 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表