c - 分发用 C 编写的库

标签 c conventions

假设我有一些用 C 语言编写的代码,其中定义了一些数据结构和一些用于处理这些结构的函数,所有这些都位于名为 src1 的目录中。假设现在我想分发这段代码。

如果我想在项目中使用src1中的外部代码怎么办?我是否应该将 src1 中的代码编译为 .a 存档,然后将该存档包含在我想使用的其他项目中?

基本上我需要知道的是在项目中使用外部代码的正确约定。

提前致谢。

最佳答案

要以库的形式分发代码,您需要按照以下步骤操作:

  1. 列出您希望向其他项目公开的结构、函数、宏等集合。
  2. 将 Point-1 中列出的数据集分组到一组头文件中。其余的内部内容可以在其他头文件中。
  3. 将您的代码编译成static(对于基于 linux 的系统为 .a,对于 windows 为 .lib)或dynamic 库(对于基于 Linux 的系统将是 .so/.sl,对于 Windows 将是 .dll)
  4. 向其他项目提供您的库和公开的头文件集(如上文第 2 点所决定)。

使用 gcc 创建静态或共享库的链接是 here

使用 MSVC 在 Windows 中创建静态或动态库的链接是 here

关于c - 分发用 C 编写的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580725/

相关文章:

python - Python 中的 "main"函数

css - css 属性以破折号开头是什么意思?

namespaces - 使用 C++/CLI 时的长/复合命名空间

binding - 基于 Ninject 约定的绑定(bind)

c - 在 main() 中定义一个函数

c - 在 ruby​​ C 扩展 gem [OSX] 中需要 lib (openmp)

编译时错误为 'lvalue required' 但不确定原因

c - 递归地将十进制数转换为二进制数

c - UINT_MAX 与 C 中的 ULONG_MAX 相同

有人可以解释这个 'typedef' 的含义吗?