MinGW在NetBeans上完全被窃听

时间:2014-03-17 20:56:16

标签: c++ netbeans compiler-construction cygwin mingw

以下代码不会产生错误:

    #include <cstdlib>
    #include <cstdio>
    #include <iostream>

    using namespace std ;

    int main ( int argc , char** argv )
    {
        int n ;
        cin >> n ;
        cout << n ;
        return 0 ;
    }

然而得到一个&#34; RUN FAILED(退出值-1,073,741,511,总时间:46ms)&#34;在Netbeans上运行MinGW / Msys。有什么建议可以转回Cygwin吗?

2 个答案:

答案 0 :(得分:0)

如果您想在Microsoft Windows操作系统下开发C ++,我建议使用MinGW Distro。它附带了一个非常新的GCC版本和Boost库。

对于构建环境设置,NetBeans IDE非常挑剔。例如。它不能与make的所有版本一起使用(例如,我们必须从MSYSmake.exe与MinGW区分mingw32-make.exe并且problems regarding the used Java Runtime Enviroment (JRE)

使用以下屏幕截图中显示的设置,您应该能够使用MinGW Distro和NetBeans 8构建示例。我建议配置make.exe文件的绝对路径,但将该路径添加到Microsoft Windows环境变量PATH。否则,您可能会遇到构建错误。

MinGW Build Tools Settings in NetBeans IDE 8.0

如果您想使用“默认”MinGW发行版,这两篇博文可能会有所帮助:

  1. Installing Minimum GNU for Windows (MinGW)
  2. Configure NetBeans IDE for Minimum GNU for Windows (MinGW)
  3. 我希望这对其他人也有帮助。


    与您的问题无关:Don't use using namespace std

    #include <iostream>
    
    int main(int argc, char** argv) {
      int n;
      std::cin >> n;
      std::cout << n;
    
      return 0;
    }
    

答案 1 :(得分:0)

我遇到了同样的问题(退出代码为-1,073,741,511),所以虽然这是一个过时的问题,但我会在这里发布此问题给其他遇到问题的人。

  1. 手动运行程序的可执行文件。您可能会收到错误,例如&#34;过程入口点__gx_personality_v0 coud不能位于动态库libstdc ++ - 6.dll&#34;中。 (OP在评论中证实了这一点。)
  2. 上面错误消息中提到的.dll文件未链接或链接不正确。需要链接的.dll的正确版本是... \ MinGW \ bin目录中的版本。在Windows中,您可以通过在命令提示符下键入where libstdc++-6.dll来检查链接的.dll文件;列出的第一个结果将是链接的文件。如果您已经看到... \ MinGW \ bin \ libstdc ++ - 6.dll作为第一个结果,我的修复程序将无法帮助您。
  3. 如果您看到一条消息&#34; INFO:无法找到给定模式的文件。&#34;,则需要将... \ MinGW \ bin添加到%PATH%变量中。 (OP已经证实这不是问题。)
  4. 我遇到的问题是我安装的程序有自己的(可能已过时)版本的libstdc++-6.dll,它位于我的%PATH%变量中的一个文件夹中,位于...之前MinGW的\ bin中。这意味着在执行期间拾取并链接了另一个.dll文件。这可以通过编辑%PATH%变量来修复,以确保... \ MinGW \ bin条目位于同时具有.dll文件版本的所有其他目录之前。
  5. 编辑:另一个选项是在程序编译时静态链接.dll,或在程序可执行文件目录中放置正确的.dll的副本。但是,这些修补程序都不是“全局”,需要单独为每个项目完成。

    希望这有帮助!