假设我有一些用 C 编写的代码,其中定义了一些数据结构和一些函数来处理这些结构,所有这些都在一个名为 src1 的目录中。假设现在我想分发此代码。
如果我想在项目中使用 src1 中的外部代码,我该怎么办?我是否应该将 src1 中的代码编译为 .a 存档,然后将该存档包含在我要使用的其他项目中?
基本上我需要知道的是在项目中使用外部代码的正确约定。
提前致谢。
假设我有一些用 C 编写的代码,其中定义了一些数据结构和一些函数来处理这些结构,所有这些都在一个名为 src1 的目录中。假设现在我想分发此代码。
如果我想在项目中使用 src1 中的外部代码,我该怎么办?我是否应该将 src1 中的代码编译为 .a 存档,然后将该存档包含在我要使用的其他项目中?
基本上我需要知道的是在项目中使用外部代码的正确约定。
提前致谢。
要以库的形式分发代码,您需要按照以下步骤操作:
使用 gcc 创建静态或共享库的链接在这里
使用 MSVC 在 Windows 中创建静态或动态库的链接在这里
是的,您可以使用静态库,它在 Linux 中是一个 .a 文件,在 Windows 中通常是一个 .lib。当然,这也需要您共享标头,因此使用该库的代码可以具有正确的数据结构定义。
您可以使用任何格式(.a 或 .so)来分发您的库。第一个是静态盟友 Inked,第二个是动态链接。要了解更多信息,请参阅此答案静态库和共享库之间的区别?
无论您使用哪个,您总是以相同的方式链接它。
gcc -L/path/to/lib -lsrc1 source.c -o source.o
在这里,/path/to/lib
可以包含您之前编译的任何内容libsrc1.so
或libsrc1.a