【问题标题】:Must C libraries have .lib extensionC 库必须具有 .lib 扩展名
【发布时间】:2011-11-09 23:18:32
【问题描述】:

我不懂C,但需要与项目中的一些C文件交互。我注意到有些文件有.lib 扩展名,而其他文件(也应该是库)只有一个大文件夹中有.c.h 文件。

  • 这些库之间有什么区别。
  • .c.h 文件夹也是库吗?
  • .lib 格式是图书馆的官方格式吗?这些使用 .c.h 的人只是懒惰还是没有使用最佳实践?

【问题讨论】:

    标签: c


    【解决方案1】:

    .c.h 文件是源代码,即文本文件。为了“使用”它们(即在计算机上执行代码),您需要将它们编译成...

    .lib 文件是最终结果,即二进制文件。它可以静态排列到另一个可执行文件中,并且代码可以在计算机上运行。如果您不需要,这可以节省您编译源代码的时间。

    .lib 只是一种常见的扩展名,但只要文件有效,扩展名是什么并不重要。将你的编译器/链接器指向.whatever 库文件,然后让'er rip,最终一切都会好起来的。

    【讨论】:

    • “.o”目标文件扩展名如何属于此分类?他们是“.lib”文件的上一步还是下一步?编辑:This question answers it
    • 事实上,问题可能是“为什么我们最后使用 .h?”答案是 (.h) 的缩写形式是 header,例如我们希望可以在 stdio.h 文件中找到源。谢谢。
    【解决方案2】:

    C static 库通常在 Windows 上以 .lib 编译,在 Linux/Unix 上以 .a.so 编译。但是扩展只是一个方便的问题:“你在回购中有lib吗!?”

    至于.h.c 它们同样有效,只是没有编译。

    即使扩展名是.darthvader,您也可以毫无顾忌地使用这两种方法

    【讨论】:

      【解决方案3】:

      只要指定了文件,编译器就不会关心扩展名。我将我的库命名为 .a。通常,源文件命名为 .c,头文件命名为 .h。但这只是为了方便,编译器可以处理任何有效的源文件,无论名称如何。

      【讨论】:

        【解决方案4】:

        用C编写的程序的标准文件扩展名是.c,项目附带的头文件带有扩展名.h

        .lib 只是一些程序员选择命名他们的库文件。它通常代表可以静态链接到另一个可执行文件的已编译二进制文件。其他常见的文件扩展名是.a.so(尤其是在*NIX 机器上)。

        【讨论】:

          猜你喜欢
          • 2010-09-29
          • 2011-03-02
          • 2019-05-18
          • 2022-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-24
          相关资源
          最近更新 更多