Cilk++ cilkexample.c = 200 lines in stderr



我在家用电脑上成功安装了Cilk,这是一台运行Ubuntu的32位计算机。我尽我所能在我的64位Ubuntu上网本上复制了这个过程,当然,我下载的是64位版本而不是32位版本。然而,当尝试运行下面复制的非常简单的cilkexample.c时,我得到了非常非常多的错误,似乎都与它无法访问库文件有关:

In file included from /usr/include/stdio.h:28,
                 from cilkexample.c:1:
/usr/include/features.h:323:26: error: bits/predefs.h: No such file or director
y
/usr/include/features.h:356:25: error: sys/cdefs.h: No such file or directory
/usr/include/features.h:388:23: error: gnu/stubs.h: No such file or directory
In file included from cilkexample.c:1:
/usr/include/stdio.h:36:25: error: bits/types.h: No such file or directory
/usr/include/stdio.h:161:28: error: bits/stdio_lim.h: No such file or directory
/usr/include/stdio.h:846:30: error: bits/sys_errlist.h: No such file or directo
ry
In file included from /usr/include/stdio.h:34,
                 from cilkexample.c:1:
/usr/local/cilk/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/include/stddef.h:
214: error: expected constructor, destructor, or type conversion before ‘typede
f’
In file included from cilkexample.c:1:
/usr/include/stdio.h:49: error: expected constructor, destructor, or type conve
rsion before ‘typedef’

等等,等等,等等。

下面是我试图用命令cilk++ -o cilkexample cilkexample.c编译的文件:

#include <stdio.h>
#include <cilk.h>
int foo() {
    return 100;
}
int bar() {
    return 50;
}
int cilk_main(int argc, char **argv) {
    int x, y;
    x = cilk_spawn foo();
    y = cilk_spawn bar();
    cilk_sync;
    printf("Got %d %d, expecting %d %dn", x, y, 100, 50);
    return 0;
}

再一次,我认为这一定是一个配置问题。我在另一台机器上测试了我们教授发布的工作版本,代码没有经过修改。

我能想到的最后一点信息是PATH

******@********:~/Path/To/Cilk$ echo $PATH
/usr/local/cilk/bin/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

谢谢你的帮助!

看起来您缺少一些标题。你说你在Ubuntu上,头文件是在xxx-dev包中分发的。

在你的错误中搜索一些头文件,我发现bits/types.h是Debian上libc6-dev的一部分,你应该检查你至少有那个包。

你应该检查一下你的发行版在哪个包中出现了这些文件,我现在没有Debian或Ubuntu机器可以检查。

编辑:我找到了一个Ubuntu盒子,看起来libc6-dev至少包含了列出的所有文件。dpkg-query -S [file]给出包名

相关内容

  • 没有找到相关文章

最新更新