gpt4 book ai didi

visual-c++ - Windows上的__block以便编译libdispatch

转载 作者:行者123 更新时间:2023-12-02 10:46:48 25 4
gpt4 key购买 nike

我正在尝试在Windows上编译libdispatch(的一部分),又名<dispatch/dispatch.h>。我尝试使用MSVC v140,但是由于Microsoft编译器不支持Blocks,我想我对MSVC不太走运。我的计划是使用Clang进行编译,由于这些LLVM快照构建,Clang可以集成到Visual Studio中:http://llvm.org/builds/

尝试使用该Clang for VS编译器从Wikipedia编译块示例

typedef int (^IntBlock)();

IntBlock MakeCounter(int start, int increment) {
__block int i = start;

return Block_copy( ^ {
int ret = i;
i += increment;
return ret;
});
}

失败并显示错误消息:

'__block'未声明的标识符

这是什么问题我以为,C会支持块?
我该怎么做才能将其编译?

最佳答案

您是否尝试过指定编译器标志-fblocks

$ clang a.c -fblocks

我不知道Clang Windows二进制文件的默认设置,但是在OS X上(默认为 -fblocks),与 -fno-blocks出现相同的错误。
$ clang -v
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

$ clang a.c -fno-blocks

a.c:3:5: error: use of undeclared identifier '__block'

关于visual-c++ - Windows上的__block以便编译libdispatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184715/

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