相关疑难解决方法(0)

在CodeLite(Windows)中将编译器从MinGW32更改为clang会导致编译错误

我有一个使用CodeLite在Windows 8.1上使用MinGW32成功构建的项目。我正在尝试将编译器从MinGW32更改为clang。但是,切换编译器后,出现以下错误:

c:/MinGW/lib/gcc/mingw32/4.8.1/include/c++\bits/stringfwd.h:74:33: error: use of undeclared identifier 'char16_t'
Run Code Online (Sandbox Code Playgroud)

...之后还有许多其他类似的性质 因此,我尝试制作一个更简单的程序来检查该程序是否仅在我的代码中,并且对MinGW32感到“幸运”。

以下程序也表现出相同的错误:

#include <iostream>

int main(int argc, char **argv)
{
    std::cout << "Hello World" << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在CodeLite中,设置了以下编译器选项(在编译器之间未更改):

-g;-O0;-Wall;-std=c++11
Run Code Online (Sandbox Code Playgroud)

Enable C++11 Standard (clang)为了确保安全,我也尝试在工作区级别选中该复选框。

在互联网上搜索后,我发现了以下问题:

由于c铛错误而导致构建失败。#762

结果,我尝试添加-fno-ms-compatibility到编译器选项中。由于编译器错误更改为:

c:/MinGW/lib/gcc/mingw32/4.8.1/include/c++\bits/char_traits.h:391:7: error: cannot mangle this built-in char16_t type yet

我也尝试使用流行的搜索引擎来找到解决方案,但我所能找到的只是在名为MicrosoftMangle.cpp的文件中对它的引用。这是提到我遇到的错误的部分:

void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T,
                                         SourceRange Range) {
  //  <type>         ::= <builtin-type>
  //  <builtin-type> ::= X  # void
  //                 ::= C  # signed char
  //                 ::= D  # …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors clang c++11 codelite

2
推荐指数
1
解决办法
3680
查看次数

标签 统计

c++ ×1

c++11 ×1

clang ×1

codelite ×1

compiler-errors ×1