【发布时间】:2015-12-29 19:03:13
【问题描述】:
我正在将一些非常老的(和大量的)代码从 CentOS 6 移植到 Ubuntu 14.04。请注意,我已经安装了预期的旧版本 gcc、修复了链接器引用等。
我的构建尝试正在进行中,但我被困在一件事上。有一个 C 文件试图创建 rusage 类型的结构,但是 Ubuntu 环境给了我以下错误:error: storage size of 'rusage' isn't known
据我所知,我的所有路径看起来都是正确的。我什至查看了每个系统上的 time.h 和 resource.h 系统文件(它可以工作的 CentOS 和不工作的 Ubuntu)。似乎有对实际定义 rusage 的 wait.h 文件的引用,只是一样。
我的 Ubuntu 环境中还可能缺少什么?
编辑:添加更多 MCVE-ish 细节...
我的构建因以下错误而停止:
vmodem.c:6747: error: storage size of 'rusage' isn't known
文件中的那一行很简单:
struct rusage rusage
所需的包含也都在该文件中(<sys/time.h>、<sys/wait.h> 等)
不确定在这种情况下我还能提供什么...
【问题讨论】:
-
代替这些几乎不相关的信息,提供一些代码以及如何得到错误。
-
@EugeneSh。 ~我愿意分享相关代码,但代码库庞大且非常复杂,发布任何有意义的部分都会导致信息过载。如果问题出在我的代码库中,那么我会尝试自己处理。我正在寻找的是 Ubuntu 中任何已知的使用问题......尤其是与 RHEL 相关的问题。或者遇到类似情况的任何人。等等。
-
要么有错字,要么不包括 sys/resource.h(sys/time.h 应该也可以)?显示代码。
-
@csr19us,只需创建一个 MVCE - stackoverflow.com/help/mcve 无论如何你都需要它来测试。
-
问题出在代码中。当您尝试声明或分配或只是
sizeof不完整类型的变量(在您的情况下为rusage)时,就会发生这种情况。
标签: c linux ubuntu build rusage