我正在clang 3.4.1
和windows
下运行mingw32 (gcc 4.8.1)
。
我在clang
下编译C程序并运行它没有问题。通过clang++
编译C ++程序也没有问题。但是我在运行生成的C ++程序时遇到了问题。它失败并显示程序已停止的错误。我很确定它与std::
有关,因为每当我调用std中的任何函数时失败都会失败。
这是我简单的C ++程序:
#include <iostream>
int main() {
std::cout << "hello, world!" << std::endl;
return 0;
}
我用这个命令编译:
clang++ Hello.cc -o Hello.exe
有什么建议吗?
编辑:我发现如果我std::cout << "hello, world!\n"
,它会优雅地终止。但是std::cout << "count: " << count
产生了同样的错误。
显然,libstdc++-6.dll
失败了。不幸的是,我没有源代码。
6FC59018 push ebp
6FC59019 mov ebp,esp
6FC5901B mov edx,dword ptr [ebp+0Ch]
6FC5901E mov eax,dword ptr [ebp+8]
6FC59021 lock xadd dword ptr [eax],edx ; Failed here
6FC59025 mov eax,edx
6FC59027 pop ebp
6FC59028 ret