首页 >后端开发 >C++ >为什么使用 GCC 编译'info.c”需要'-lstdc”标志?

为什么使用 GCC 编译'info.c”需要'-lstdc”标志?

Patricia Arquette
Patricia Arquette原创
2024-11-29 19:25:21515浏览

Why Does Compiling `info.c` with GCC Require the `-lstdc  ` Flag?

使用 GCC 编译 C 程序

虽然 GCC 能够编译 C 代码,但尝试编译“info.c”时遇到编译器错误“是由于链接器错误造成的。这些错误源于缺少与标准 C 库的链接。

要解决此问题,请将 -lstdc 标志添加到编译命令中:

gcc info.C -lstdc++

或者,一个更简单的解决方案是利用 g ,它执行以下操作:

  • 根据文件扩展名选择适当的后端编译器,类似于GCC。
  • 将所有 C 源文件编译为 C ,与 GCC 将 .c 文件编译为 C 形成对比。
  • 默认情况下,无论输入语言如何,在链接步骤中都包含 libstdc。

以下摘录自 Rup 的评论,简洁地解释了差异:

“GCC 将根据文件扩展名选择正确的后端编译器。但是,默认情况下它仅将二进制文件链接到标准 C 和 GCC 帮助程序库。相比之下,g 在其链接步骤中包含 libstdc默认情况下,无论输入语言如何。”

以上是为什么使用 GCC 编译'info.c”需要'-lstdc”标志?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn