c/c++语言开发共享如何从头文件和源文件创建一个C库(用于Ubuntu)?

我正在寻找一个程序来创建一个C库(即链接和编译文件到一个文件)基于具有以下结构的.h文件和.c文件(它是一个FEC库:www。 openfec.org)。 我正在使用Ubuntu。 我希望它在不手动指定每个文件的情况下执行此操作。 我尝试了WAF,但得到了错误’错误:root:错误:没有名为cflags的模块’。

这是(部分)结构:

fec lib_advanced ldpc_from_file of_code_profile.h of_ldpc_ff.h ... lib_common linear_binary_codes_utils binary_matrix it_decoding ml_decoding statistics of_cb.h of_debug.h of_mem.c of_mem.h of_openfec_api.c of_openfec_api.h of_openfec_profile.h of_types.h 

谢谢!!

    您必须使用gcc将C文件编译为对象文件。

    然后你必须使用ar r然后使用ranlib将对象打包成一个.a库文件。

    *nix系统上的C库(包括所有Linux发行版)都是使用标准工具创建的,这个工具是a)C编译器b)链接器b)ar实用程序c)ranlib实用程序。

    C编译器99.9%的时间是GNU C编译器,而链接器ld和实用程序arranlib是gnu系统上的binutils包的一部分(99.9%的linux系统)。

    arranlib用于创建静态库,将已编译的目标文件(* .o文件)放入存档文件libsomething.a使用ar并使用ranlib索引存档。

    可以在gcc编译器内调用链接器来创建具有位置无关代码的动态库,同样已经编译的文件在特殊文件上存档,该文件具有共享对象的.so扩展名。

    静态库用于速度和自包含,它们生成大型可执行文件,其中包含最终可执行文件中的所有依赖项。 如果单个库中有许多更改,要更新它,您将不得不重新编译所有内容。

    动态库分别编译和链接可执行文件,它们可以由多个可执行文件同时使用,如果更新了一个库,则只需要重新编译单个库,而不是每个依赖于它的可执行文件。

    这些工具的使用是通用的和标准的程序,它们可能因* nix系统到* nix系统的细节而有所不同,但在linux上你基本上总是使用GCC和Binutils软件包。 make,cmake,autotools等forms的额外构建实用程序可用于帮助完成该过程,但始终使用基本工具。

    通常在最基本的级别上编写Makefile脚本,该脚本由make实用程序解释。 根据您的命令,它可以创建一种或两种类型的库,安装库和可执行文件,卸载它们,清理等等

    欲获得更多信息 :

      以上就是c/c++开发分享如何从头文件和源文件创建一个C库(用于Ubuntu)?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522191.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐