我从Windows迁移到Ubuntu Linux,现在我想在这里设置开发环境。问题是我需要
我第一次尝试Code :: Blocks。 Here我找到了为交叉开发设置它的指南,所以我设法在Wine下编译并运行“Hello World”。此外,调试工作也是如此。
但后来我发现Eclipse + CDT插件是更先进的IDE。我花了一些时间,最后编译和链接项目。
现在我正在尝试在Eclipse CDT中使用MinGW Insight版本的GDB。使用Code :: Blocks指南中描述的调试器的简单方法将不再适用。我继续收到“创建会话错误”消息。
所以我的问题是,我如何在Wine下使用Wine下的MinGW GDB作为调试器后端? 或者,什么是适用于Linux的最佳IDE-> Windows交叉开发?
答案 0 :(得分:3)
我想知道没有人回答这个问题。
QtCreator。不要被它的名字搞糊涂,QtCreator适用于任何类型的C ++代码都很好,你不需要在Qt中编写代码来使用它。它就像FOSS Visual Studio:它甚至可以“动态”检查语法。
MinGW的。这里没什么可说的,它只是创建了Win PE可执行文件,而且它可以工作。它在存储库中可用。注意,Win GUI应用程序在其PE头集中有特殊位;因此,为了使用MinGW创建GUI应用程序,您必须传递一个选项-mwindows
来设置此位。
这是一个问题。真的:我只是试图调试一个Windows应用程序,并没有找到办法做到这一点。我将在这里回忆一下迄今为止我尝试过的事情,只是为了让你不要踩到我的耙子:
<强> winedbg 即可。可能它应该工作,但对我来说它没有。当我设置断点时,例如br 43
,它会显示Unable to add breakpoint (unknown address 7b860807)
。
<强> winedbg 即可。是的,再一次,但是这次我们将像winedbg --gbd
一样使用它来使它代理gdb
的命令。可能这是调试应用程序的唯一方法,但它有一个缺点:首先,为了重新启动应用程序,你必须退出调试器;如果输入run
,则说远程目标不支持此功能。其次,我甚至不知道如何调试多线程应用程序;当我第一次开始这个时,我偶然发现了一个错误Non-stop mode requested, but remote does not support non-stop
,并在设置断点并开始它后说:
Cannot insert breakpoint 1.
和Cannot access memory at address 0x401654
。因此,为了完成这项工作,我需要重命名我的.gdbinit
文件(即在那里设置非停止模式)。
<强> gdb.exe 即可。我确信我找到了一种方法:简单使用gdb
的Windows版本可以解决问题;更重要的是,对我来说,因为我是Emacs的家伙,它与使用原生gdb进行调试完全一样。但是,唉,windows gdb只是没有用。如果我运行它并输入任何命令,它就什么都不做。它仅对 Ctrl-c 和 Ctrl-z 命令作出反应。可能我会利用业余时间在邮件列表上询问有关它的问题。那么,现在我们不能使用它......
那么我们对调试做了什么?最有可能寻找另一个在 WINE 下工作的Windows调试器。如果我没记错的话,OllyDbg工作了,但我现在还不知道如何让它显示源代码。
答案 1 :(得分:0)
你可以试试NetBeans。这是一个很好的免费开源 和跨平台支持IDE。
答案 2 :(得分:-2)
在VM中运行Windows?
说真的,你的问题很好,但可能不值得花时间找出答案(尤其是:因为似乎没有人有一个现成的答案)。如果您还有实际工作要做,那么VM中的本机Windows或Windows就是答案。