我有这个最小的helloworld,扩展了包括ucontext.h
:
#include <ucontext.h>
#include <stdio.h>
int main(int argc, char** argv) {
printf ("hello world!\n");
return 0;
}
它使用 gcc-4.9 ( gcc -c hw.c -Wall
) 在没有警告的情况下编译。
但是如果我切换到 c11 标准 ( gcc -std=c11 -c hw.c -Wall
),我会收到以下错误:
$ gcc -std=c11 -c hw.c -Wall
In file included from /usr/include/ucontext.h:26:0,
from hw.c:1:
/usr/include/x86_64-linux-gnu/sys/ucontext.h:137:5: error: unknown type name ‘stack_t’
stack_t uc_stack;
^
我的第一个想法是 glibc 不支持 c11。谷歌搜索并没有透露有用的信息。这是什么情况?
(我使用 glibc-2.19 和 gcc-4.9。它是一个 debian jessie,amd64。)