【问题标题】:Emscripten, Embind, Error: no instance of constructorEmscripten,Embind,错误:没有构造函数实例
【发布时间】:2015-05-28 15:12:55
【问题描述】:

我正在尝试使用 Emscripten 将类(和结构)从 C++ 转换为 Javascript。 为此,我想使用 Embind。我正在尝试转换一个非常简单的示例,但即使使用此示例,我也会遇到错误。 我的代码:

#include "C:\\Emscripten\\emscripten\\1.30.0\\system\\include\\emscripten\\bind.h"

using namespace emscripten;

class AddTest
{
public:
    static unsigned int addTest(unsigned int stepCount);

};

EMSCRIPTEN_BINDINGS(AddTest)
{
    class_<AddTest>("AddTest")
        .constructor<>()
        .class_function("addTest", &AddTest::addTest)
        ;
}

使用此代码,我会报错:

“错误:没有构造函数实例“class_BaseSpecifier::class_[with ClassType=AddTest, >BaseSpecifier=internal::NoBaseClass]”与参数列表匹配

这里给出了一个使用 Embind 的例子: https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/embind.html#classes

我只是无法发现示例和我的代码之间的区别。

有人可以帮帮我吗?

【问题讨论】:

  • 看起来 Emscripten 想要一个构造函数。您是否尝试过创建一个虚拟的 AddTest(){} 构造函数来看看会发生什么?
  • 是的,我做到了。然后 .constructor() 给我一个“类模板“构造函数”错误的参数太少。如果我在构造函数中插入一个参数,如“int number”,我会得到一个“不允许类型名称”错误。

标签: javascript c++ emscripten embind


【解决方案1】:

我发现了我的错误。我忘了指定

--绑定

在“命令行”下的 Clang C/C++ 和 Emcc 链接器属性中。

现在只需要解决其他几个问题:D

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 2017-02-27
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多