我正在将一个为Unix编写的相对简单的控制台程序移植到Windows平台(Visual C++ 8.0)。所有源文件都包含“unistd.h”,但它并不存在。删除它,我会收到关于“srandom”、“random”和“getopt”的错误原型的投诉。 我知道我可以替换随机函数,而且我非常确定我可以找到/破解getopt实现。
但我相信其他人也遇到了同样的挑战。 我的问题是:Windows有“unistd.h”端口吗?至少有一个包含那些具有本机Windows实现的函数-我不需要管道或分叉。
编辑:
我知道我可以创建自己的“unistd.h”,其中包含我需要的东西的替代品-特别是在这种情况下,因为它是一个有限集。但由于这似乎是一个常见的问题,我想知道是否有人已经为更大的功能子集做了这项工作。
切换到不同的编译器或环境在工作中是不可能的-我被Visual Studio困住了。
尝试包含
io.h
文件。它似乎相当于Visual Studio的unistd.h
。我希望这能有帮助。
由于在Internet上找不到版本,我们从这里开始。
大多数到Windows的端口可能只需要完整Unix文件的一个子集。
这是一个起点。请根据需要添加定义。
我建议使用mingw/msys作为开发环境。尤其是在移植简单的控制台程序时。Msys在Windows上实现了一个类Unix的shell,mingw是GNU compiler collection (GCC)和其他GNU构建工具到Windows平台的端口。它是一个开源项目,非常适合这个任务。我目前使用它来为Windows XP构建实用程序和控制台应用程序,而且它肯定有您正在寻找的
unistd.h
头。安装过程可能有点棘手,但我发现最好从MSYS开始。
相关问题 更多 >
编程相关推荐