gpt4 book ai didi

c++ - 有什么区别?铿锵++ |铿锵 -std=c++11

转载 作者:IT老高 更新时间:2023-10-28 12:39:32 24 4
gpt4 key购买 nike

我错误地使用了这个命令,在链接步骤中失败了:

$ clang -std=c++11 -stdlib=libc++ myInputFile.cpp

谁能解释一下为什么 clang 提供了 C++ 语言选项,以及为什么它无法链接? 为什么选项 -x c++-std 没有=c++11clang++ 一样吗?谢谢!

最佳答案

从技术上讲,两个名为 clang 的程序都没有。或 clang++是一个编译器:它们都是驱动程序,它们分析输入参数并确定在哪些文件上调用哪些编译器/汇编器/链接器和哪些命令行参数。两者的唯一区别是clang如果执行链接,则仅链接到 C 标准库,而 clang++针对 C++ 和 C 标准库的链接。

-x=<language>选项覆盖驱动程序用于确定源文件语言的启发式方法,它指示驱动程序为 <language> 调用编译器无论如何。

-std=<dialect>选项选择您要使用的特定语言的方言。如果您需要确保您的 C++ 程序可移植到旧的 C++98 编译器,您可以使用 -std=c++98 进行编译。 . -std仅适用于目标语言:它不会尝试编译,例如汇编器或 java 为 C++98,仅驱动程序认为是 C++ 的源文件。

简而言之,有两种不同的驱动程序可以让您轻松选择要链接的库。编译 C++ 但不链接 C++ 标准库有合理的用例。

关于c++ - 有什么区别?铿锵++ |铿锵 -std=c++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com