几年来,我在Visual Studio for Windows和Linux的GCC(代码块)中编写程序。我的大多数lib都是无缝编译的,因为它们在Windows和Linux中都可以工作。但是目前我有点困惑,因为我必须使用Cygwin创建一个应用程序。我真的不明白我是否仍然在UNIX / Linux环境中,只是通过某些“模拟”在Windows上运行应用程序,或者我更喜欢在Windows上访问某些Linux / Unix功能。根据我从FAQ和文档中的理解,我看起来应该像在Linux环境中一样。 我在互联网上找到的所有解释都非常笼统,并没有解释程序员观点的细微差别。
简短的问题:在使用Cygwin时,我可以像编写Linux一样编写程序而不会有任何重大变化吗?
答案 0 :(得分:2)
<强>也许强>
为Linux编写的许多代码都将在Cygwin中编译,几乎没有问题,主要可以通过搞乱预处理器定义来修复。
但是,为linux编写的任何代码:
肯定无法正常工作。
很多尝试,Cygwin无法完全模拟(是的,它是一个模拟器,各种)POSIX系统通常可以做的一切。 Cygwin是不窗口,只是来自其自己的机器语言的转换层。
有关详情,请参阅cygwin's wikia
答案 1 :(得分:1)
我可以像没有任何专业那样编写像Linux一样的程序 使用Cygwin时会发生什么变化?
平台不完全相同,所以你不能真实地期望在Linux中编写程序,然后 POOF 期望它在Cygwin下构建和工作。但是,如果您不使用Windows下不可用的内容,则不需要主要更改。并且你可以编写非平凡的程序,这些程序将在两者上构建和工作,可能需要在某些地方#ifdefs
。
从你的问题我认为你想在Linux上工作,但编写在Cygwin下运行的程序。在这种情况下,您还必须始终在Cygwin环境中构建和测试它,所以:
如果Cygwin不是绝对要求,那么我会考虑使用Qt SDK。它也可用于非Qt项目,Windows上的MinGW工具链与Linux上的 gcc 非常相似。如果您愿意使用Qt,那么它可以为您可能想要做的事情提供各种与平台无关的功能,例如发现用于保存文件的标准目录的位置,使用线程,打印内容,使用GUI ......