typeinfo name()和endl在Windows和mingw中不能一起工作

时间:2014-01-05 14:13:31

标签: c++ windows-8 mingw typeid ubuntu-13.10

当我在Ubuntu(Ubuntu 13.10,64位,g ++ 4.8.1)中运行这个简单代码时:

#include <iostream>
#include <typeinfo>
#include <string>

using namespace std;

int main(void)
{
    const type_info &ti_trait = typeid(char_traits<char>::char_type);

    cout << "Traits character type name : " <<
        ti_trait.name() << endl;

    return 0;
}

一切都很好,但是在Windows(Windows 8 64位,mingw,g ++ 4.8.1)中,我得到“程序已经停止工作”(编译工作正常,并且-Wall不会发出警告)。

在Visual Studio中编译和执行的相同代码可以正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决方案是使用-static-libgcc -static-libstdc++see here for an explaination)进行编译。感谢@sftrabbit。