小编Sim*_*son的帖子

将闭包传递给 trait 方法:预期类型参数,找到闭包

我对如何让这个工作感到有些困惑,我已经把它从真实的东西中剪下来了。我写了一个特征:

pub trait Renderable<F: Fn(&PropertyTags)> {
    fn set_property_changed_callback(&mut self, callback: Option<F>);
}
Run Code Online (Sandbox Code Playgroud)

其中 'child' 参数add_child受限制并且PropertyTags只是一个枚举。我已经包含了类型的模拟实现child来演示我的用法:

pub struct Child<F: Fn(&PropertyTags)> {
    property_changed_callback: Option<F>,
}

impl<F: Fn(&PropertyTags)> Renderable<F> for Child<F> {
    fn set_property_changed_callback(&mut self, callback: Option<F>) {
        self.property_changed_callback = callback;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后这些将用作:

pub fn add_child<REND, C>(&mut self, child: &mut REND)
    where C: Fn(&PropertyTags),
        REND: Renderable<C>
{
    let tc = Some(|property_tag: &PropertyTags|{
            });

    child.set_property_changed_callback(tc);
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

child.set_property_changed_callback(tc);
   |                                ^^ expected type parameter, found closure
   |
   = …
Run Code Online (Sandbox Code Playgroud)

closures rust

5
推荐指数
1
解决办法
2833
查看次数

使用独立NDK工具链构建协议缓冲区

我在使用使用$ NDK/build/tools/make-standalone-toolchain.sh脚本创建的独立NDK工具链构建适用于Android的Protocol Buffers时遇到问题.我遇到的问题是:

libtool: link: g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -O2 -g -DNDEBUG -o protoc main.o  ./.libs/libprotobuf.a ./.libs/libprotoc.a /home/sizeak/AudioFingerprinting/ProtoBuf/jni/src/.libs/libprotobuf.a -lz -lc
./.libs/libprotoc.a(plugin.pb.o): In function `GoogleOnceInit':
/home/sizeak/AudioFingerprinting/ProtoBuf/jni/src/./google/protobuf/stubs/once.h:115: undefined reference to `pthread_once'
Run Code Online (Sandbox Code Playgroud)

这似乎意味着缺少pthreads库,但是sysroot是由ndk脚本创建的,所以应该包含所有内容,对吧?我在某处读到,在使用独立工具链时没有必要显式链接pthreads.我使用的configure命令是:

./configure --host=arm-eabi --with-sysroot=$SYSROOT CC=$CC --enable-cross-compile --with-protoc=protoc LIBS="-lc"
Run Code Online (Sandbox Code Playgroud)

将环境变量设置为指向脚本创建的sysroot的位置.

我在网上的很多页面上看到过这个问题,但似乎没有人发布答案.有人可以帮忙吗?

android protocol-buffers android-ndk

3
推荐指数
1
解决办法
5808
查看次数

标签 统计

android ×1

android-ndk ×1

closures ×1

protocol-buffers ×1

rust ×1