gpt4 book ai didi

在GCC5.2.0中编译Cilk plus

转载 作者:行者123 更新时间:2023-11-30 15:14:11 57 4
gpt4 key购买 nike

有人知道如何在gcc5.2.0中使用Cilk plus正确编译以下代码吗?使用 gcc -fcilkplus * 或 g++,我总是会遇到错误。

#include <cilk/cilk.h>
#include <assert.h>

int fib(int n) {
if (n < 2)
return n;
int a = cilk_spawn fib(n-1);
int b = fib(n-2);
cilk_sync;
return a + b;
}

int main() {
int result = fib(30);
assert(result == 832040);
return 0;
}

结果:

Undefined symbols for architecture x86_64:
"___cilkrts_enter_frame_1", referenced from:
fib(int) in ccY1qrGL.o
"___cilkrts_enter_frame_fast_1", referenced from:
__cilk_spn_0 in ccY1qrGL.o
"___cilkrts_leave_frame", referenced from:
fib(int) in ccY1qrGL.o
__cilk_spn_0 in ccY1qrGL.o
"___cilkrts_rethrow", referenced from:
fib(int) in ccY1qrGL.o
"___cilkrts_save_fp_ctrl_state", referenced from:
fib(int) in ccY1qrGL.o
"___cilkrts_sync", referenced from:
fib(int) in ccY1qrGL.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

网上关于这个的话题很少。谢谢

最佳答案

当用户指定 -fcilkplus 时,GCC 默认情况下将 -lcilkrts 添加到其链接器命令中,但如果存在任何特定于平台的配置,则可以覆盖此默认行为。我认为 OS X 上正在发生这种情况,但我认为它需要修复。不管怎样,除了上面建议的添加 -lcilkrts 之外,似乎没有短期解决方案。

关于在GCC5.2.0中编译Cilk plus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34142685/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com