繁体   English   中英

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

[英]C: Running Unix configure file in Windows

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

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

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

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

更新:

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

  • wdiff.c | 226 |错误:`SIGPIPE'未声明(首次使用此函数)

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

  • readpipe.c:74:对_forfor的未定义引用

这是一个linux信号,Windows不支持... equvilancy?

  • wdiff.c | 1198 |错误:`PRODUCT'未声明(首次使用此功能)|

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

结果:

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

是。 如果您坚持使用标准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编程,这是我所知道的最好的书。

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

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

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

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

暂无
暂无

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

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