【问题标题】:unknown type name 'pid_t' because of using unistd.h由于使用 unistd.h,未知类型名称 'pid_t'
【发布时间】:2012-10-20 07:42:16
【问题描述】:

我收到此错误:unknown type name 'pid_t'。我认为构建失败是由于对头文件的评论:unistd.h。由于 windows 不支持 unistd.h,我评论 #include <unistd> 并且此标头的唯一用途是 pid_t 所以我期待基于 this answer 在 Visual Studio 中手动添加 pid_t 定义。
有什么帮助吗?

【问题讨论】:

  • 你是在 Windows 还是 OS X 上编译,还是两者都编译?在 Windows 上编译时是否需要 pid_t
  • @MartinR 只在 Windows 上,是的,我需要 pid_t 在 Windows 上编译
  • 您能否在需要pid_t 的地方提供更多信息?您想在 Windows 上编译一些 Unix 源代码吗?你还需要getpid() 吗?
  • 它是 UNIX 下的程序,我正在尝试在 windows 上编译它。我已经纠正了除此之外的所有错误。它像这样使用 pid_tpid_t pidVirtuaCard=0;if( (pidVirtuaCard=fork()) < 0 )。不,我不需要在任何地方使用getpid()
  • fork() 是在哪里定义的?这不是 Windows 功能。

标签: objective-c visual-studio unistd.h


【解决方案1】:

Windows 没有fork() 函数。您有以下选择:

  • 重写程序以使用CreateProcess()。但请注意,这不是一对一的替换。它创建了一个新进程,与fork() 不同,它不是调用进程的副本。

  • 使用模拟 Unix API 的环境,例如 Cygwin

【讨论】:

  • tnx 马丁。我现在应该开始了!
猜你喜欢
  • 1970-01-01
  • 2018-05-18
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 2014-11-19
  • 2018-10-27
  • 2016-09-16
相关资源
最近更新 更多