首页 > 解决方案 > C 代码在带有 Ubuntu 18.04 的虚拟机上编译,而不是在 Crouton 上编译:Struct redef 错误

问题描述

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

错误:重新定义“struct sched_pa​​ram”

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

标签: gccsdkcrouton-os

解决方案


您的问题中没有太多信息(您要编译哪些来源?什么是最小复制器?),但修复可能是沿着这些路线。源文件之一使用

#include <linux/sched.h>

你需要用

#include <sched.h>

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


推荐阅读