我是生锈和网络组装的新手,并且有一个简单的示例站点。到目前为止,它只是非常简单的东西,一切都很好。接下来,我想看看连接到MySQL的情况。
在Cargo.toml中,我添加了:
[dependencies]
wasm-bindgen = "0.2.50"
mysql = "*"没有mysql部分,一切都编译得很好。一旦我添加了mysql="*",我就会得到许多(317)错误。
一些错误样本:
[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;`?和
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 -锈病的网站信息
考虑到我是生锈新手,我不知道还需要什么信息来帮助我。
编辑:我一直在谷歌上搜索这些错误中的许多没有运气。
发布于 2019-09-07 18:43:34
这是一个相当大的区别;通过这样做,您将添加从最高层到最低层的内容:
如果知道整个链与wasm一起工作,那就没问题了。问题是,它不是;从库的Cargo.toml文件中可以看出,它“知道”窗口、macOS或linux作为目标。在您的例子中,wasm不是这三个,所以它尝试使用net2来建立网络,这依赖于libc,它需要所有突然丢失的符号。
如果你决定往前推进,你会掉进一个非常非常深的兔子洞里。如果你这样做了,在评论中提到,我会给你指点。但是,在这样做之前,请考虑以下几点:如果这是针对wasm工作人员的,任何有代码的人都可以知道三胞胎(proto、host、port)来访问您将要使用的MySQL服务器以及凭据。这也可能导致严重的基础设施问题,因为您不一定知道什么是受信任的客户端,什么不是信任的客户端。
(我不会对你们撒谎,这也将是一个的工作,而且大部分都不会容易。)例如,我不会掉进那个洞里)
https://stackoverflow.com/questions/57836226
复制相似问题