C程序最初是用Linux编写的,现在使用Cygwin移植到Windows(编译w / gcc)

时间:2011-04-26 00:08:22

标签: linux gcc cygwin

我正在开发一个相当冗长的项目,该项目最初是在Linux机器上用C语言编写的。我需要将它移植到Windows并尝试使用Cygwin中的gcc编译器作为“最简单”的传输方法。

该程序最初是在很久以前编写的,并且经过多方面的操作。它以前一直在Linux上运行,没有任何问题。该程序有许多部分,其中大部分都在Linux和Cygwin下编译和运行。但是,有一部分项目在Cygwin中编译,但在我做任何事情之前都会给出一个分段错误(相同的代码在Linux中工作正常)。

我已经输入了一些printf()语句来查看我是否可以缩小它但是它似乎在它做任何事情之前给出了seg错误(即,我的第一个printf()是第一个主要(){...)。我已经使用-wall选项和gcc一起尝试查看是否有任何“明显的”警告/错误,但看不到任何跳出来的东西。它们大多只是在传递“long int”时期望“int”的警告,但这些警告与我在Linux中使用-Wall的警告相同。

有没有人建议我在尝试使代码与Cygwin兼容时应该寻找什么样的东西和/或在Cygwin进入之前可能导致代码出现seg错误的想法? (我会发布一些代码,但它有几千行。)

感谢您的帮助!

编辑: 谢谢你的建议。我浏览了gdb,结果如下所示。然后我花了很多时间在昨天尝试在Linux中使用MinGW。仍然没有成功。这两个问题都可能与架构(Sandy Bridge)或操作系统(Windows 7 64位)有关吗?程序加载后我立即得到一个段错误 - 它甚至没有通过main(...)

1 个答案:

答案 0 :(得分:0)

如果你只想在windows环境中使用exe并且不需要在那里重建它,你可以尝试使用MinGW和linux中的命令i586-mingw32msvc-g++i586-mingw32msvc-gcc进行交叉编译。它对我有用;希望它适合你。