9

我从 Windows 搬到了 Ubuntu Linux,现在我想在这里设置开发环境。问题是我需要

  1. C/C++ IDE 媲美 Visual Studio
  2. 生成 Windows PE 二进制文件的方法
  3. 调试 Windows PE 二进制文件的方法

第一次我尝试了 Code::Blocks。在这里,我找到了为交叉开发设置它的指南,因此我设法在 Wine 下编译和运行“Hello World”。此外,调试也很有效。

但后来我发现 Eclipse + CDT 插件是更高级的 IDE。我花了一些时间,终于编译并链接了项目。

现在我试图让 GDB 的 MinGW Insight 版本在 Eclipse CDT 中工作。Code::Blocks 指南中描述的使用调试器的简单方法将不再有效。我继续收到“创建会话时出错”消息。

所以我的问题是,如何在 Wine 下使用 MinGW GDB 作为 Eclipse 中的调试器后端?或者,Linux->Windows 交叉开发的最佳 IDE 是什么?

4

3 回答 3

3

我想知道还没有人回答这个问题。

  1. Qt创作者。不要被它的名字所迷惑,QtCreator 可以很好地与任何类型的 C++ 代码配合使用,您无需在 Qt 中编写代码即可使用它。它就像 FOSS Visual Studio:它甚至有一个“即时”的语法检查。

  2. 明威。这里不多说,它只是创建 Win PE 可执行文件,它可以工作。它在存储库中可用。请注意,Win GUI 应用程序的 PE 标头集中有特殊位;因此,为了使用 MinGW 创建 GUI 应用程序,您必须传递一个选项-mwindows来设置该位。

  3. 这是个问题。真的:我只是想调试一个 Windows 应用程序,但还没有找到办法。我会很快在这里回忆一下我到目前为止所做的尝试,只是为了让你不要踩到我的耙子:

    • 葡萄酒。可能它应该工作,但对我来说它没有。当我设置断点时,即像这样br 43,它说Unable to add breakpoint (unknown address 7b860807)

    • 葡萄酒。是的,再次,但是这次我们将像这样使用它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。我确信我找到了一种方法:简单地使用 Windows 版本的gdb应该可以解决问题;此外,对于我来说,因为我是一个 Emacs 人,这与使用原生 gdb 进行调试完全一样。但是,唉,windows gdb 只是没有工作。如果我运行它并输入任何命令,它什么也不做。它只对Ctrl-cCtrl-z命令作出反应。可能我会在空闲时间尝试在邮件列表上询问有关它的问题。好吧,现在我们不能使用它了...

那么我们对调试有什么用呢?最有可能寻找另一个在WINE下工作的 Windows 调试器。如果我没记错的话,OllyDbg 可以工作,但我目前不知道如何让它显示源代码。

于 2014-08-15T06:57:51.410 回答
0

你可以试试NetBeans。它是一个很好的免费、开源和跨平台支持的 IDE。

于 2012-12-03T11:19:32.507 回答
-2

在虚拟机中运行 Windows?

Seriously, your question is good, but it's probably not worth spending the time to figure out the answer (especially: since nobody seems to have a ready answer). If you have real work to do, native Windows or Windows in a VM is the answer.

于 2014-08-15T07:02:01.967 回答