我在C做一个库,现在我要把它交给我的测试人员,结果出现了一个问题。
我必须把我的.a库和很多头文件都发出去。这些头文件似乎对测试仪的使用非常不便。有没有办法减少需要传送的文件数量,以便更容易地移动和设置?(例如,将所有头文件打包为1或类似的文件)

最佳答案

在Linux上交付软件(包括库)的最常见方式是使用软件包(比如Red Hat/CentOS上的RPM或Debian/Ubuntu上的DEB)。这需要你付出额外的努力(学习使用一些新的工具,编写一个rpm/deb规范等),但它会有回报:
软件包包含版本号,因此很容易跟踪,您到底在测试什么
软件包允许您将文件安装到您指定的目录中(例如,/usr/include用于标题,/usr/lib用于库)。
如果您设法设置一个私有包存储库,那么您的测试人员将能够使用标准的Linux工具(如apt-getyum)安装/升级/降级库。
至于最小化头的数量,通常的做法是将头分成两个子集:接口头(定义库的API)和内部头(声明内部使用的函数和类型、实现细节)。只需要安装前者。示例:libjpegturbo。这个存储库有许多头文件,但是对应的CentOS 7的package只安装4个头文件)。
如果这还不够,您可以简单地将所有接口头连接到一个大头中(只要顺序正确,它应该可以工作)。Googletest库使用pythonscript合并它们的头(以及源代码)。

关于c - 有没有办法用 header 包C库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46601851/

10-13 09:43