Xcode链接器和块:未定义的符号“ ____block_global_1”
-
28-09-2019 - |
题
我正在尝试在Xcode 3.2.4中构建一个应用程序,并收到以下链接器错误:
Undefined symbols:
"___block_global_1", referenced from:
___block_holder_tmp_1.120 in foobarbaz.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
我不知所措,可以解释我在源文件中所做的可能导致错误的事情。我确实有一个我定义为全球变量的块,例如:
typedef void(^error_block_t)(NSError* error);
error_block_t error_handler_s = ^void(NSError* error)
{
//...
}
该块在源中的空名称空间中定义(我正在编译Objective-C ++。)所有内容都没有错误。
更新: 将块移至常规的局部变量,引用它是可行的(尽管不是首选)的解决方法。
是什么赋予了?
解决方案 2
在这一点上,我认为这个问题是一个错误。
其他提示
如果是 error_handler_s
不打算出口,您可以做到 static
作为另一个解决方法。
namespace {
...
static error_block_t error_handler_s = ^void(NSError* error) { ... };
...
}
否则,我相信这是GCC中的错误。
不隶属于 StackOverflow