使用外部库创建一个自包含项目

时间:2010-12-07 09:58:46

标签: c compilation

嘿伙计们, 我想创建一个独立于机器的C项目。 一个例子?我想在没有安装外部库(但包含在我的项目中)的机器上“制作所有”我的项目,我希望所有人继续工作:) 我正在谈论的库是GSL,你可以在libgsl0-dev ubuntu包中找到它。 现在,我想在我的项目中包含所有头文件和.c文件,卸载软件包,项目必须像以前一样构建和运行:) 想法? 谢谢! 再见!

2 个答案:

答案 0 :(得分:1)

不要忘记依赖关系。

像GSL这样的库作为独立实体分发是有原因的:

用户可以独立于使用它的软件升级库,从而使您无需在GSL版本更改时不断更新项目。

许可问题。

依赖关系。如果GSL具有依赖关系,并且您希望将GSL构建为项目的一部分,那么您还需要包含所有依赖项的所有源代码...及其依赖项...及其依赖项......等等等等。如果您要求已经安装了某些子依赖项,那么您也可以要求已经安装了GSL。

其他原因我无法想到因为我还有其他事情要做。

答案 1 :(得分:0)

只需将库的源代码复制到项目的层次结构中,然后开始创建或修改Makefile(或任何GSL使用的)以使其构建。

例如,您可以将它放在目录external/libgsl中,然后为执行构建的项目设置Makefile目标。然后,您将项目的代码依赖于库,以便始终首先构建库。

当然,您还需要考虑在分发项目时可能出现的任何许可问题。