【问题标题】:clone() function implicit declarationclone() 函数隐式声明
【发布时间】:2014-06-28 01:31:53
【问题描述】:

我正在使用函数clone() 来创建线程。问题是我在编译过程中遇到了这个错误:

implicit declaration of function ‘clone’ [-Wimplicit-function-declaration]

我加入了<linux/sched.h>。可能是什么问题?

【问题讨论】:

  • man clone - 它告诉你要包括什么?

标签: c linux clone


【解决方案1】:

在源文件的顶部添加以下行

#define _GNU_SOURCE  
#include <linux/sched.h>        /* or #include <sched.h> */

_GNU_SOURCE 是一个功能测试宏

功能测试宏允许程序员在编译程序时控制系统头文件公开的定义。为了有效,必须在包含任何头文件之前定义功能测试宏。这可以在编译命令 (cc -DMACRO=value) 中完成,也可以通过 #define-在源代码中 #include 之前添加宏来完成strong>-ing 任何标题。

【讨论】:

  • 我想仍然需要定义 _GNU_SOURCE 宏。
  • 是的,除非您使用的 -std 模式已经设置了它(gnuXXX 模式执行 AFAIR)
猜你喜欢
  • 2021-01-20
  • 1970-01-01
  • 2022-01-16
  • 2011-10-05
  • 2013-10-28
  • 2019-07-16
  • 2017-07-16
  • 2012-04-20
相关资源
最近更新 更多