当我在 Windows 操作系统中的 Code::Blocks 中运行以下代码时。 我曾经遇到过一个错误,称为未定义的 fork() 引用。 我确实设置/选择了 GCC 编译器作为我的默认编译器。
#include<stdio.h>
#include<unistd.h>
void main()
{
int x;
x = 0;
fork();
x = 1;
...
....
}
请帮助我,告诉我,我可以在windows环境下的Code::Blocks中修改unix/linux程序吗?
我又写了一个程序,
main()
{
int x = 0;
if(x == 0)
{
printf("X = %d", x);
sleep(1000);//used delay also
x = 1;
printf("Now X = %d", x);;
}
}
这里给出了错误,即未定义对 sleep() 的引用和 / * 还延迟* /。
不,无论你使用什么 IDE,你都不能像那样在 Windows 上编写 Unix 代码。但是,您应该尝试 cygwin,它应该提供您需要的兼容性层。
2017 更新:这些天我们还有 Linux 的 Windows 子系统。
Windows 上没有
fork
系统调用。
fork()
是一个unix系统调用,所以当你在windows操作系统中执行此操作时,它肯定会产生未定义的引用。 Windows 不支持fork()
。
Windows 中没有 fork() 系统调用,您可以尝试 cygwin 或 pthreads。
我也遇到了一些困难,从 https://www.cygwin.com/ 安装 Cygwin 确保从包窗口检查 gcc-core 和 gcc-debug 信息包。