繁体   English   中英

使用cygwin在c中编程

[英]Programming in c using cygwin

我打算在Windows上使用cygwin进行编程。 与在ubuntu中使用gcc相比,这是否有任何性能缺陷?

我在Windows 7和Windows 2008 R2上使用Cygwin进行C开发。 经验很痛苦:不仅速度慢,而且我从未设法让我的首选编辑器(Emacs)在Cygwin中正常工作。

您可以尝试使用USB记忆棒启动的Linux现场发行版。 这样你就可以用C语言编写内容,而无需在PC上安装任何软件。 如果采用这种方法,我会推荐Puppy Linux

或者,您可以安装虚拟化产品(如VirtualBox )并创建Linux VM。 在那种情况下,我建议使用Ubuntu。

我的经验是,实时发行版或VM方法比使用Cygwin作为开发环境要好。

你不会得到完全相同的表现。 但这是否是一个缺点取决于你在做什么。

还有很多事情要理解:

GCC-Cygwin的:

优点 -

  1. 在cygwin下使用gcc编译C代码将生成一个Windows可执行文件,它使用动态链接到您的应用程序/代码的cygwin.dll(Posix仿真层)。 因此,如果您需要从其他路径或其他Windows机器执行此应用程序,应该安装cygwin并在其路径中出现错误。

  2. Cygwin提供了一个好处,如果你有一个在Linux-gcc上开发的POSIX兼容代​​码,你可以编译它而不需要在Windows上进行任何更改(在某些情况下几乎没有变化)。 所以它在Windows上提供了Posix兼容性。

缺点 -

  1. 如果你打算运行一些会消耗大量系统资源(内存,CPU),那么不确定cygwin与Linux上的本机可执行文件相比会如何扩展。

  2. 有时,在cygwin上使用ddd调试,我发现了一些奇怪的崩溃/挂起的ddd。

GCC-Linux的:

  1. 如果您的最终应用程序将在Linux上执行,那么在相同的环境下编译和调试它是有意义的。 Linux的海湾合作委员会。

  2. 对于调试,linux会为你提供很多工具(gdb / ddd,valgrind)等。

  3. 如果你想加速一些关键代码,在linux下使用内联汇编和gcc很好地定义并且没有问题。(Udner Cygwin,我有时会遇到编译内联汇编是个问题)

  4. 如果你想在多个处理器/内核上添加多个线程来执行,那么pthreads会帮助你(不确定同一个udner cygwin)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM