有没有办法包C头库与头

时间:2017-10-06 08:48:16

标签: c linux gcc static-libraries

我正在C中创建一个库。现在我要将它交给我的测试人员,并且出现问题。

我必须发送我的.a库和相当多的头文件。这些头文件似乎非常不便于用于测试人员。反正是否有减少需要传递的文件的数量,因此更容易移动和设置? (例如将所有头文件打包成1或类似的东西)

1 个答案:

答案 0 :(得分:2)

在Linux上交付软件(包括库)的最常见方式是使用软件包(例如Red Hat / CentOS上的RPM或Debian / Ubuntu上的DEB)。这将需要您的一些额外努力(学习使用一些新工具,编写rpm / deb规范等),但它会得到回报:

  • 包中包含版本号,因此很容易跟踪,您正在测试的是什么
  • 包允许您将文件安装到您指定的目录中(例如,/usr/include表示标题,/usr/lib表示库。)
  • 如果您设法设置私有软件包存储库,您的测试人员将能够使用apt-getyum等标准Linux工具安装/升级/降级库。

至于最小化标头数量,通常的做法是将标头拆分为两个子集:接口标头(定义库的API)和内部标头(声明内部使用的函数和类型,实现细节)。只需要安装前者。示例: libjpegturbo 。此存储库有许多头文件,但CentOS 7的相应package仅安装4个头文件。

如果这还不够,您可以简单地将所有接口标头连接成一个大标头(如果顺序正确,它应该可以工作)。 Googletest 库使用python script合并其标题(以及来源)。