何时在 GCC 中使用 '-stdlib=libstdc ' 标志
当使用 gcc 编译时,'-stdlib=libstdc ' 标志有必要指定使用 GNU 标准 C 库 (libstdc ) 作为运行时库。
编译器是否自动使用 libstdc ?
否。根据操作系统和特定的 GCC 版本,编译器可能默认使用不同的运行时库。
何时使用 '-stdlib=libstdc ' 标志
以下是一些需要使用 '-stdlib=libstdc ' 标志的场景:
-
在 Linux 上: 虽然大多数 Linux 发行版默认使用 libstdc,但显式指定该标志可以确保不同版本之间的兼容性。
-
在 Mavericks 之前的 macOS 上:在 macOS Mavericks 之前,默认运行时库是 Apple 的旧版本 libstdc 。要使用 libc(支持 C 11),必须使用 '-stdlib=libc ' 标志。
-
自 Mavericks 以来的 macOS 上:自 macOS Mavericks 以来,libc 已成为默认值和不应使用 '-stdlib=libstdc ' 标志。
编译命令
要在不同操作系统上使用 libstdc 编译 C 11 代码,请使用以下命令命令:
-
Linux: g -std=c 11 -stdlib=libstdc input.cxx -o a.out
-
Mavericks 之前的 macOS: g -std=c 11 -stdlib=libc input.cxx -o a.out
-
自 Mavericks 以来的 macOS: clang -std=c 11 input.cxx -o a.out出来
以上是何时应将 \'-stdlib=libstdc \' 标志与 GCC 一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!