gpt4 book ai didi

Linux 中的 Clang block ?

转载 作者:IT王子 更新时间:2023-10-29 00:16:28 31 4
gpt4 key购买 nike

Clang 有一个非常酷的扩展名为 block将真正的 lambda 函数机制引入 C。与 block 相比,gcc 的嵌套函数非常有限。但是,尝试编译一个简单的程序c.c:

#include <stdio.h>int main() {    void (^hello)(void) = ^(void) {        printf("Hello, block!\n");    };    hello();    return 0;}

使用 clang -fblocks c.c,我得到了

/usr/bin/ld.gold: /tmp/cc-NZ7tqa.o: in function __block_literal_global:c.c(.rodata+0x10): error: undefined reference to '_NSConcreteGlobalBlock'clang: error: linker command failed with exit code 1 (use -v to see invocation)

似乎我应该使用 clang -fblocks c.c -lBlocksRuntime,但后来我得到了

/usr/bin/ld.gold: error: cannot find -lBlocksRuntime(the rest is the same as above)

有什么提示吗?

最佳答案

在 Ubuntu Linux 上:

sudo apt-get install llvm
sudo apt-get install clang
sudo apt-get install libblocksruntime-dev

test.c:

#include <stdio.h>

int main() {
void (^hello)(void) = ^(void) {
printf("Hello, block!\n");
};
hello();
return 0;
}

编译:

clang test.c -fblocks -lBlocksRuntime -o test
./test

Hello, block!

工作正常。

关于Linux 中的 Clang block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907071/

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