MinGW 在 NetBeans 上完全被窃听
Posted
技术标签:
【中文标题】MinGW 在 NetBeans 上完全被窃听【英文标题】:MinGW completely bugged on NetBeans 【发布时间】:2014-03-17 20:56:16 【问题描述】:以下代码不应产生错误:
#include <cstdlib>
#include <cstdio>
#include <iostream>
using namespace std ;
int main ( int argc , char** argv )
int n ;
cin >> n ;
cout << n ;
return 0 ;
在 Netbeans 上运行 MinGW/Msys 时却得到“运行失败(退出值 -1,073,741,511,总时间:46 毫秒)”。有什么建议,比如切换回 Cygwin?
【问题讨论】:
这可能与共享库/运行配置有关。可以手动运行程序吗? 请详细说明“手动运行程序” 代码完全没有问题,所以问题可能是你的MinGW安装。尝试重新安装它(和/或 Netbeans)。 我已经这样做了。在安装 MinGW 之前,我使用的是 Cygwin。然后我完全卸载了 Cygwin,安装了 MinGW,但它没有用。然后我重新安装它并回到同一个地方。对于两个编译器,我都按照 Netbeans 网站上的说明进行操作 您可以手动运行崩溃程序的可执行文件吗? 【参考方案1】:如果您想在 Microsoft Windows 操作系统下开发 C++,我建议使用MinGW Distro。它附带了一个相当新的 GCC 版本和 Boost 库。
NetBeans IDE 在构建环境设置方面非常挑剔。例如。它不适用于所有版本的make
(例如,我们必须将make.exe
与MSYS 和mingw32-make.exe
与MinGW 区分开来)并且有problems regarding the used Java Runtime Enviroment (JRE)。
使用以下屏幕截图中显示的设置,您应该能够使用 MinGW Distro 和 NetBeans 8 构建您的示例。我建议不配置make.exe
文件的绝对路径,但添加Microsoft Windows 环境变量PATH
的路径。否则您可能会遇到构建错误。
如果您想使用“默认”MinGW 分发版,这两篇博文可能会有所帮助:
-
Installing Minimum GNU for Windows (MinGW)
Configure NetBeans IDE for Minimum GNU for Windows (MinGW)
我希望这对其他人也有帮助。
与您的问题无关:Don't use using namespace std
:
#include <iostream>
int main(int argc, char** argv)
int n;
std::cin >> n;
std::cout << n;
return 0;
【讨论】:
【参考方案2】:我遇到了同样的问题(退出代码为 -1,073,741,511),所以虽然问题过时了,但我还是在这里为遇到问题的其他人发布此问题。
-
手动运行程序的可执行文件。您可能会收到诸如“过程入口点 __gx_personality_v0 不能位于动态库 libstdc++-6.dll 中”之类的错误。 (OP 已在评论中确认了这一点。)
上述错误消息中提到的 .dll 文件没有被链接,或者链接不正确。需要链接的.dll 的正确版本是...\MinGW\bin 目录中的那个。在 Windows 中,您可以通过在命令提示符中键入
where libstdc++-6.dll
来检查正在链接的 .dll 文件;列出的第一个结果将是链接的文件。如果您已经在此处看到 ...\MinGW\bin\libstdc++-6.dll 作为第一个结果,那么我下面的修复对您没有帮助。
如果您看到消息“信息:找不到给定模式的文件。”,则需要将 ...\MinGW\bin 添加到您的 %PATH% 变量中。 (OP 已经确认这不是问题。)
我遇到的问题是我安装的程序有自己的(可能已过时)版本的libstdc++-6.dll
,它位于我的 %PATH% 变量中也包含的文件夹中,位于 ...\MinGW\斌。这意味着这个其他 .dll 文件在执行期间被拾取并链接到。这可以通过编辑 %PATH% 变量来解决,以确保 ...\MinGW\bin 条目位于所有其他也具有 .dll 文件版本的目录之前。
编辑:另一个选项是在程序编译时静态链接 .dll,或者将正确的 .dll 副本放在程序可执行目录中。但是,这些修复都不是“全局”的,需要为每个项目单独完成。
希望这会有所帮助!
【讨论】:
以上是关于MinGW 在 NetBeans 上完全被窃听的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MinGW 在 Linux 上构建 Crypto++ 库?
MingW 报告 Netbeans + Qt 中缺少 .dll 文件
使用 MinGW GCC 4.5.0 配置 NetBeans 6.9 时遇到问题