Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
strust stdweb无法编译_Rust_Webassembly_Rust Cargo - Fatal编程技术网

strust stdweb无法编译

strust stdweb无法编译,rust,webassembly,rust-cargo,Rust,Webassembly,Rust Cargo,我想开始使用这个库,但由于某种原因,我的代码无法编译。代码如下: #[macro_use] extern crate stdweb; fn main() { stdweb::initialize(); let message = "Hello, 世界!"; js! { alert( @{message} ); } stdweb::event_loop(); } 下面是我在运行cargo web start时遇到的错误--target

我想开始使用这个库,但由于某种原因,我的代码无法编译。代码如下:

#[macro_use]
extern crate stdweb;

fn main() {
    stdweb::initialize();

    let message = "Hello, 世界!";
    js! {
        alert( @{message} );
    }

    stdweb::event_loop();
}
下面是我在运行cargo web start时遇到的错误--target=wasm32 unknown:

error: linking with `rust-lld` failed: exit code: 1
  |
  = note: "rust-lld" "rust-lld" "-flavor" "wasm" "--no-threads" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "--export-dynamic" "--no-entry" "-L" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.16ntzdg2n8bx81q6.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.2xfx8uklq7n12q67.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.48klqndjiid3k9rj.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.48le17nhrmqft97k.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.4b580liojrglk551.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.4rrrlrglrmdphj5c.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.4vuc8rinrzvzrs2v.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.50srrlytlsid8m35.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.5fgjih7crwhwn4xr.rcgu.o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.5fkqw2idrlv7jos5.rcgu.o" "-o" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.wasm" "--export" "main" "--export" "__web_malloc" "--export" "__web_free" "--export=__heap_base" "--export=__data_end" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/rust_snake.2l9dobmrlqco0sju.rcgu.o" "--gc-sections" "-O0" "-L" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps" "-L" "/home/kuba/Projects/rust-snake/target/debug/deps" "-L" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libstdweb-ef476852d27a12c5.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libdiscard-a83cebb0a142eb8f.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libstdweb_internal_runtime-0bce6e61d1817cf7.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libserde_json-1c98a67e94d08af3.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libryu-322b81c9b49f7e9f.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libitoa-a7c2d7644820b152.rlib" "/home/kuba/Projects/rust-snake/target/wasm32-unknown-unknown/debug/deps/libserde-c2f4e30465155451.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libstd-9c867bc4c16ee4c2.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-ed0cd729c2f3d142.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libdlmalloc-030f419e714a0cc6.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libhashbrown-a12a1f881dba75e1.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_alloc-35aa06e58878157c.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libbacktrace-6636ad5f40fe0c6e.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_demangle-3c1019358081106e.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libunwind-b93526bae6789131.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcfg_if-12a659b7ffc8c645.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liblibc-62025a1d48e0630e.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liballoc-80234d57a1442351.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_core-d429e78abfaecaef.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcore-c485e95495d6739c.rlib" "/home/kuba/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcompiler_builtins-53d1b7f6a2bd6c6f.rlib" "-fuse-ld=gold"
  = note: rust-lld: error: unknown argument: -fuse-ld=gold


error: aborting due to previous error
error: could not compile `rust-snake`.
我认为其他一些信息可能有用:

货物版本:
cargo 1.41.0-每晚(626f0f40e 2019-12-03)

~/.cargo/config的内部:

[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc-7"
任何帮助都将不胜感激:)

编辑:我使用的是“基本操作系统”(基本上是ubuntu和更酷的ui)。试图建立在稳定的基础上会给我同样的错误

Edit2:
rustup show
返回

rustup home:  /home/kuba/.rustup

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu (default)
nightly-x86_64-unknown-linux-gnu

installed targets for active toolchain
--------------------------------------

arm-unknown-linux-gnueabihf
armv7-unknown-linux-gnueabihf
wasm32-unknown-unknown
x86_64-unknown-linux-gnu

active toolchain
----------------

stable-x86_64-unknown-linux-gnu (default)
rustc 1.40.0 (73528e339 2019-12-16)

Edit3:
cargo web--版本
返回
cargo web 0.6.26

您的链接器或编译器设置未正确设置,或以某种方式更改

错误:未知参数:-fuse ld=gold

RUSTFLAGS
ld
环境变量或编译器选项中删除标志:
-fuse ld=gold

使用详细标志(
-v
-verbose
)查看详细输出:

cargo web build-v--target=wasm32未知
WebAssembly快速、安全、可移植,是开放式Web平台的一部分。
因此,WebAssembly是独立于平台的(您不需要将其编译为ARM,它是基于虚拟机的,因此您需要一台主机来运行WebAssembly,例如,在web浏览器JavaScript虚拟机中运行WebAssembly。还有)

因为它是便携式的:
您可以在任何机器上使用正在工作的编译器构建它,然后将
.wasm
文件复制到目标web服务器机器上


要从头开始创建web hello world示例,请执行以下操作:

rustup目标添加wasm32未知
# https://github.com/koute/stdweb
货物搜索货物网
#cargo web=“0.6.26”#客户端web的cargo子命令
#cargo安装cargo web--版本0.6.26
货物安装货物网
文件~/.cargo/bin/cargo-web
货运网-版本
#货网0.6.26
#创建新项目,例如“123stdweb rs js”
货运新123stdweb rs js
cd 123stdweb rs js
货物搜索网站
添加到Cargo.toml文件,在
[依赖项]
之后结束:

stdweb = "0.4.20"  # A standard library for the client-side Web
main.rs
文件:

use stdweb;
use stdweb::js;

fn main() {
    stdweb::initialize();
    let message = "Hello from stdweb.";
    let result = js! {
        alert( @{message} );
        return 2 + 2 * 2;
    };
    println!("2 + 2 * 2 = {:?}", result);
    stdweb::event_loop();
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    Right click <b>Inspect</b> then click <b>Console</b> tab
    <hr />

    <script src="stdweb-rs-js.js"></script>
  </body>
</html>
构建并运行web服务器以服务于
target/wasm32 unknown/debug/stdweb rs js.js

stdweb = "0.4.20"  # A standard library for the client-side Web
#使用Rust的原生WebAssembly后端编译到WebAssembly:
cargo web start--目标=wasm32未知
打开您的web浏览器:

firefoxhttp://localhost:8000
完成了


您可以发布以下版本:

cargo web build --release --target=wasm32-unknown-unknown
mkdir static
cp target/wasm32-unknown-unknown/release/stdweb-rs-js.js ./static/
cp target/wasm32-unknown-unknown/release/stdweb-rs-js.wasm ./static/
现在,您可以使用您最喜欢的静态web服务器提供
stdweb rs js.js
stdweb rs js.wasm
文件,例如
python3-m http.server 8080
使用简单的
/static/index.html
文件:

use stdweb;
use stdweb::js;

fn main() {
    stdweb::initialize();
    let message = "Hello from stdweb.";
    let result = js! {
        alert( @{message} );
        return 2 + 2 * 2;
    };
    println!("2 + 2 * 2 = {:?}", result);
    stdweb::event_loop();
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    Right click <b>Inspect</b> then click <b>Console</b> tab
    <hr />

    <script src="stdweb-rs-js.js"></script>
  </body>
</html>

文件
右键单击“检查”,然后单击“控制台”选项卡

就这些



我希望这会有所帮助。

您在哪个平台上构建项目?您是否与编译器的夜间版本绑定?@E_net4我在linux上构建的Safedown投票者。确切地说,它的“基本操作系统”基本上就是ubuntu,具有更酷的用户界面,但在系统上一切都像ubuntu一样工作。你能解释一下“捆绑”是什么意思吗?您好,您真的需要使用该版本的Rust编译器吗?可能是您刚刚偶然发现了一个特定的夜间工具链,它与stdweb不兼容。另外,别忘了用这些细节编辑你的问题。谢谢你的回复!可悲的是,在完成所有步骤后,我仍然会遇到同样的错误:(而且我不认为这是我的错,因为我让它在windows上正常工作,但它确实存在。我认为这只是cargo web的失败。嘿,我尝试了一些事情,最后感谢你,我发现我可以通过使用“RUSTFLAGS='-C linker=rust lld'cargo web start--target=wasm32 unknown”“。是否有任何方法可以让它在默认情况下这样做?好的,我找到了!出于某种原因,我的RUSTFLAGS环境变量设置为“-C link args='-fuse ld=gold”“默认情况下,我不知道它为什么会这样做,但在/etc/environment中清除RUSTFLAGS后,一切都很好。谢谢您的帮助:)