Undefined reference to fork() in Code::Blocks edit

2020-08-17 17:17发布

问题:

When I am running below code in Code::Blocks in Windows OS. I used to get an error called undefined reference to fork(). I did set/choose GCC compiler as my default compiler.

#include<stdio.h>       
#include<unistd.h>          
void main()          
{       
 int x;       
 x = 0;       
 fork();       
 x = 1;        
 ...     
 ....    
}

Please help me and tell me, can I right unix/linux programs in Code::Blocks in windows environment?

And I write another program,

main()
{
  int x = 0;
  if(x == 0)
  {
    printf("X = %d", x);
    sleep(1000);//used delay also
    x = 1;
    printf("Now X = %d", x);;
  }
}

Here it gives eroor that undefined reference to sleep() and / * delay also* /.
Please help me.

回答1:

No, you can't write Unix code on Windows like that, no matter what IDE you use. However, you should try cygwin, and that should provide the compatibility layer you need.

2017 update: These days we also have Windows Subsystem for Linux.



回答2:

There is no fork system call on Windows.



回答3:

fork() is a unix system call, so it will definitely produce an undefined reference when you do this in windows OS. Windows does not support fork().



回答4:

You try using cygwin Also I am not sure, but there's this equivalent called system call spawn() in ms-dos environment. you may try using that.



回答5:

There is no fork() system call in windows, instead you can try cygwin or pthreads.