Gcc C代码在带有Ubuntu 18.04的虚拟机上编译,而不是在Crouton:Struct redef错误上编译

Gcc C代码在带有Ubuntu 18.04的虚拟机上编译,而不是在Crouton:Struct redef错误上编译,gcc,sdk,crouton-os,Gcc,Sdk,Crouton Os,我有一个摄像头SDK,在Ubuntu 18.04上可以正常工作,我可以在虚拟机上运行。我想让相机在我的chromebook上工作,所以我安装了。但是,当我尝试在crouton上复制该过程时,运行make时收到错误: 错误:“struct sched_param”的重新定义 在这两种情况下使用相同版本的gcc 您的问题中没有太多信息(您试图编译哪些源代码?什么是最小复制器?),但修复可能是沿着这些思路进行的。其中一个源文件使用 #include <linux/sched.h> #包括

我有一个摄像头SDK,在Ubuntu 18.04上可以正常工作,我可以在虚拟机上运行。我想让相机在我的chromebook上工作,所以我安装了。但是,当我尝试在crouton上复制该过程时,运行make时收到错误:

错误:“struct sched_param”的重新定义


在这两种情况下使用相同版本的gcc

您的问题中没有太多信息(您试图编译哪些源代码?什么是最小复制器?),但修复可能是沿着这些思路进行的。其中一个源文件使用

#include <linux/sched.h>
#包括
你需要用

#include <sched.h>
#包括

并确保使用
-D_GNU_SOURCE
构建。我怀疑您正在尝试编译一段较旧的代码,这种混合内核/glibc头包含的代码通常需要针对旧代码进行清理。

您的问题中没有太多信息(您试图编译哪些源代码?什么是最小的复制器?),但修复方法可能是这样的。其中一个源文件使用

#include <linux/sched.h>
#包括
你需要用

#include <sched.h>
#包括
并确保使用
-D_GNU_SOURCE
构建。我怀疑您正在尝试编译一段较旧的代码,这种混合的内核/glibc头包含通常需要为旧代码清理