C:在Windows中运行Unix配置文件

时间:2010-03-26 21:29:21

标签: c windows gnu porting

我想将我在Linux上使用的一些应用程序移植到Windows。特别是我一直致力于wdiff。一个程序,用于逐个比较两个文件的差异。

目前我已经能够通过Cygwin在Windows上成功编译程序。但是,我想在Windows上本地运行程序,类似于项目:UnixUtils

我如何在Windows环境中移植unix实用程序?

我可能会猜测手动创建./configure文件,以便我可以创建一个正确的makefile。我是在正确的轨道上吗?有没有人有将GNU软件移植到Windows的经验?

更新

我在Code :: Blocks上编译了它,我得到两个错误:

  • wdiff.c | 226 |错误:`SIGPIPE' 未申报(首先在此使用 功能)

  • readpipe.c:71:未定义引用`_pipe'

  • readpipe.c:74:未定义对`_fork

  • 的引用

这是windows不支持的linux信号... equvilancy?

  • wdiff.c | 1198 |错误:`PRODUCT' 未申报(首先在此使用 功能)|

这是在configure.in文件中...硬编码可能是最快的解决方案......

结果:

MSYS负责配置问题,但MinGW无法解决posix问题。我尝试按照mrjoltcola的建议使用pthreads。但是,几个小时后,我无法使用提供的库进行编译或链接。我认为如果这有效,那将是我追求的解决方案。 特别提到Michael Madsen的MSYS。

4 个答案:

答案 0 :(得分:3)

是。如果您坚持使用标准C库和POSIX功能,则大多数都可以在Windows上使用。您可能只需要找到实现。有些东西的实现不需要Cywgin或MinGW(比如pthreads包等)。

此外,还有一本很好的书,以W. Richard Steven在UNIX环境中的高级编程的风格编写,本书是 Windows系统编程 ,作者Johnson Hart。他有第4版。它侧重于系统编程,没有任何GUI处理。

http://www.amazon.com/Windows-Programming-Addison-Wesley-Microsoft-Technology/dp/0321657748

对于迁移到Windows的UNIX编程而言,这是我所知道的最好的书。

答案 1 :(得分:2)

您可以查看与cygwin类似的MinGW(和MSYS),但gcc会生成本机Windows可执行文件。但是,由于Unix模拟不如cygwin好,您可能需要调整代码。

答案 2 :(得分:0)

即使在移植应用程序时也始终尝试遵循标准。 Windows / Linux上存在POSIX兼容的编译器。你可以尝试mingw。它具有构建标准POSIX应用程序(GNU Linux)所需的完整工具链。查看Dev-Cpp,它可以简化工作。

答案 3 :(得分:0)

MinGW是在Windows PC上获取gcc和相关二进制实用程序(包括gdb)的最简单方法。它包括头文件和导入库,以便您可以调用本机Windows API。如果您想要更多集成的IDE开发环境,可以下载Microsoft的免费Visual Studio Express C++

无论哪种方式,您都可能需要将某些函数调用转换为使用Windows特定的API(如果您想要一本书,我还会推荐在mrjoltcola的答案中提到的Hart书)。对于简单的命令行工具,这种转换通常不是什么大问题,大型移植噩梦倾向于涉及具有GUI的工具,这些GUI具有对操作系统提供的GUI框架的深度嵌入依赖性。