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

问题描述 投票:0回答:6

当我在 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() 的引用和 / * 还延迟* /。

c windows gcc codeblocks
6个回答
10
投票

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

2017 更新:这些天我们还有 Linux 的 Windows 子系统


3
投票

Windows 上没有

fork
系统调用。


2
投票

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


0
投票

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


0
投票

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


0
投票

我也遇到了一些困难,从 https://www.cygwin.com/ 安装 Cygwin 确保从包窗口检查 gcc-core 和 gcc-debug 信息包。

enter image description here

从互联网安装软件包,然后从代码块将默认编译器更改为 Cygwin GCC,如下所示 enter image description here

确认Compiler安装目录是否放置到位,如果没有放置,请点击“自动检测”按钮,如下图: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.