首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当运行wasm-pack时,导入mysql会产生许多错误。

当运行wasm-pack时,导入mysql会产生许多错误。
EN

Stack Overflow用户
提问于 2019-09-07 17:59:46
回答 1查看 349关注 0票数 2

我是生锈和网络组装的新手,并且有一个简单的示例站点。到目前为止,它只是非常简单的东西,一切都很好。接下来,我想看看连接到MySQL的情况。

在Cargo.toml中,我添加了:

代码语言:javascript
复制
    [dependencies]
    wasm-bindgen = "0.2.50"
    mysql = "*"

没有mysql部分,一切都编译得很好。一旦我添加了mysql="*",我就会得到许多(317)错误。

一些错误样本:

代码语言:javascript
复制
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
   Compiling net2 v0.2.33
   Compiling libc v0.2.62
error[E0432]: unresolved import `sys`
  --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src
/tcp.rs:18:5
   |
18 | use sys::c;
   |     ^^^ maybe a missing `extern crate sys;`?

代码语言:javascript
复制
error[E0425]: cannot find value `timeout2ms` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1145:18
     |
1145 |             .map(timeout2ms)
     |                  ^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `SOL_SOCKET` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:33
     |
1149 |         set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
     |                                 ^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `SO_SNDTIMEO` in this scope
    --> /home/rich/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.33/src/ext.rs:1149:45
     |
1149 |         set_opt(self.as_sock(), SOL_SOCKET, SO_SNDTIMEO,
     |                                             ^^^^^^^^^^^ not found in this scope

到目前为止,我还没有添加任何代码来实际连接到数据库。我只是想建造这个项目。唯一的差异是添加mysql依赖项。

我正在使用关于使用MySQL:mysql -锈病的网站信息

考虑到我是生锈新手,我不知道还需要什么信息来帮助我。

编辑:我一直在谷歌上搜索这些错误中的许多没有运气。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-07 18:43:34

这是一个相当大的区别;通过这样做,您将添加从最高层到最低层的内容:

  • 处理mysql的库
  • 库来处理各种压缩机制,MySQL可以使用
  • 处理TLS的库
  • 处理套接字的库(您的错误来自何处)

如果知道整个链与wasm一起工作,那就没问题了。问题是,它不是;从库的Cargo.toml文件中可以看出,它“知道”窗口、macOS或linux作为目标。在您的例子中,wasm不是这三个,所以它尝试使用net2来建立网络,这依赖于libc,它需要所有突然丢失的符号。

如果你决定往前推进,你会掉进一个非常非常深的兔子洞里。如果你这样做了,在评论中提到,我会给你指点。但是,在这样做之前,请考虑以下几点:如果这是针对wasm工作人员的,任何有代码的人都可以知道三胞胎(proto、host、port)来访问您将要使用的MySQL服务器以及凭据。这也可能导致严重的基础设施问题,因为您不一定知道什么是受信任的客户端,什么不是信任的客户端。

(我不会对你们撒谎,这也将是一个的工作,而且大部分都不会容易。)例如,我不会掉进那个洞里)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57836226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档