Windows操作系统中Code :: Blocks编辑器中对fork()的未定义引用

时间:2012-01-11 12:58:10

标签: c windows gcc compiler-construction codeblocks

当我在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);;
}

这里给eroor提供了对sleep()和/ *延迟的未定义引用* /。
请帮帮我。

6 个答案:

答案 0 :(得分:9)

不,无论您使用什么IDE,都无法在Windows上编写Unix代码。但是,您应该尝试cygwin,这应该提供您需要的兼容性层。

2017年更新:这些天我们也有Windows Subsystem for Linux

答案 1 :(得分:3)

Windows上没有fork系统调用。

答案 2 :(得分:1)

fork()是一个unix系统调用,因此在Windows操作系统中执行此操作时肯定会产生未定义的引用。 Windows不支持fork()

答案 3 :(得分:0)

您尝试使用cygwin我也不确定,但在ms-dos环境中有这个等效的系统调用spawn()。你可以尝试使用它。

答案 4 :(得分:0)

在Windows中没有fork()系统调用,而是可以尝试使用cygwin或pthreads。

答案 5 :(得分:0)

我对此也有些挣扎,请从https://www.cygwin.com/安装 Cygwin 确保从软件包窗口检查gcc-core和gcc-debug信息软件包。

enter image description here

从Internet安装软件包,然后从代码块将默认的Compiler更改为Cygwin GCC,如下所示 enter image description here

确认是否正确放置了编译器安装目录,如果没有,请单击“自动检测”按钮,如下所示: enter image description here