【发布时间】:2018-02-03 23:31:27
【问题描述】:
我的 Xcode 9.2 可以选择使用 -std=c++17 或 -std=gnu++17 编译 C++。
我的具有一些 C++17 功能的 C++ 代码编译成功。
但是,如果我尝试在终端中使用相同的标志编译相同的代码,我会收到以下错误:
clang++ -std=c++17 test.cpp -o test
error: invalid value 'c++17' in '-std=c++17'
和
clang++ -std=gnu++17 test.cpp -o test
error: invalid value 'gnu++17' in '-std=gnu++17'
我的 OSX 版本是 10.13.3,我的 Clang++ 版本是:
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.4.0
我认为终端会使用与 Xcode 相同的编译器。可能是这样,但我不能使用相同的选项。至少我不能。
我尝试使用-std=C++1z,但它没有编译我的代码,因为它不理解 C++17 的一些新功能。
所以我的问题是:有没有办法在我的终端应用程序中使用我的 Xcode 9.2 中当前可用的 -std=c++17 或 -std=gnu++17?
这个问题与 stackoverflow 上的其他问题不同,因为我找到的所有答案 -std=c++17options 在 Xcode 中都不可用。现在我们有了这个选项,但我不知道如何在终端中使用它。
【问题讨论】: