1

我在计算机的 cout 命令中有这个问题。我使用 MingW 和 Netbeans 来学习 C++。我尝试使用以下代码编译并运行程序。

#include <iostream>

int main(){
    int x = 5;
    int y = 7;
    std::cout << std::endl;
    std::cout << x + y << " " << x * y;
    std::cout << std::endl;
    return 0;
}

此代码保存为 xycalculation.cpp,我使用g++ -o xycalc.exe xycalculation.cppWindows XP SP2 计算机上的命令对其进行了编译。我在 PATH 中设置了这个环境变量。C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin;D:\MinGW\bin;D:\MinGW\ msys\1.0\bin

此代码编译良好并创建 xycalc.exe 文件。当我尝试通过命令行运行它时xycalc.exe,它会给我一条 Windows 错误消息并退出而不给出任何输出。

错误的详细信息,当我单击“有关此错误的更多信息,请单击此处”链接时显示如下。

AppName: xycalculation.exe   AppVer: 0.0.0.0     ModName: libstdc++-6.dll
ModVer: 0.0.0.0  Offset: 000952a0

谁能给我指点来纠正这个问题?这对我继续学习这门语言会有很大的帮助。

提前致谢。

4

2 回答 2

2

-static-libgcc将和添加-static-libstdc++到命令行以静态链接库或将它们与 exe 放在同一文件夹中。

于 2013-04-16T02:57:53.360 回答
1

您收到此错误的原因是因为默认情况下您的编译器不会编译libstdc++到您的程序中。

我使用代码块,但您可以通过使用 MinGW 编译器并尝试在控制台中的代码块之外运行程序来复制错误。

要解决此问题,您应该添加:

-static-libgcc (C) 
-static-libstdc++ (C++) 

到您的链接器标志,它将将库编译到您的 EXE 中(更大的 EXE,但它会运行)。

于 2013-04-16T03:00:24.650 回答