RUST на Windows: получение ссылки: фатальная ошибка LNK1181 ошибка - PullRequest
0 голосов
/ 20 октября 2019

Я полный новичок (на самом деле этот курс) в отношении языка Rust, и мне было интересно, можно ли создать приложение для Windows с использованием клиента mqtt.

Я создалмой проект, использующий cargo new testmqtt --bin,

мой toml-файл

[package]
name = "testmqtt"
version = "0.1.0"
authors = ["Pierre"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
mosquitto-client = "0.1.5"

Файл Main.rs является первым найденным здесь .

extern crate mosquitto_client as mosq;
use mosq::Mosquitto;

fn main() {
    let m = Mosquitto::new("test");

    m.will_set("test/will",b"finished!",0,false).expect("can't set will");

    m.connect("localhost",1883).expect("can't connect");
    let bonzo = m.subscribe("bonzo/#",0).expect("can't subscribe to bonzo");
    let frodo = m.subscribe("frodo/#",0).expect("can't subscribe to frodo");

    // not interested in any retained messages!
    let mut mc = m.callbacks(());
    mc.on_message(|_,msg| {
        if ! msg.retained() {
            if bonzo.matches(&msg) {
                println!("bonzo {:?}",msg);
            } else
            if frodo.matches(&msg) {
                println!("frodo {:?}",msg);
                m.disconnect().unwrap();
            }
        }
    });

    m.loop_forever(200).expect("broken loop");
}

При выполнении грузового прогона у меня возникает ошибка, в которой более или менее необходимо указать файл mosquitto.lib.

Compiling testmqtt v0.1.0 (C:\Users\Pierre\rust\testmqtt)
    Finished dev [unoptimized + debuginfo] target(s) in 3.43s
     Running `target\debug\testmqtt.exe`
Hello, world!
PS C:\Users\Pierre\rust\testmqtt> cargo run
    Updating crates.io index
   Compiling mosquitto-client v0.1.5
   Compiling testmqtt v0.1.0 (C:\Users\Pierre\rust\testmqtt)
error: linking with `link.exe` failed: exit code: 1181
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.23.28105\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.18yxopwcqksqllf0.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.26hriqf9eoqoz70e.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.287dmq688xsz3isv.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2e77zj76zbvh065j.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2huuzosvc51r1ocl.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2o9r9r2t2clr39wq.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2wggiqwux76jad1h.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.3mqzooten3ugyse9.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.3vqvdeaqidai2p26.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4fnmrub2ky4biwf5.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4tdiuzs0kqadbi75.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4u40iyf9g9kmiphf.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.51m4wneyq731nq60.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.5d67na1jjhizscb4.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.ap2kea3xxb47i5p.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.h5xgbt8abre0rtw.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.vlg3p2hoy45m5m6.rcgu.o" "/OUT:C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.exe" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.49ivjbnnhficmjo4.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps" "/LIBPATH:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\libmosquitto_client-23967bfdaa3a5433.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-8864852919b3dde3.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-60bab00b06422126.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libbacktrace-e90b3ab99b608a07.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-d9b7b1604d471c6c.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-a439eac7fda93b7a.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-058c975bf38e4686.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-711d56157cf28645.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-d802c196c150a787.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-7147008fc56d32b8.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-57b2ee5c835455f8.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-6391a360e3eeafba.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-6c8df881cdc2afb2.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-f998976453a15b70.rlib" "mosquitto.lib" "c.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
  = note: Non-UTF-8 output: LINK : fatal error LNK1181: impossible d\'ouvrir le fichier en entr\xe9e \'mosquitto.lib\'\r\n

error: aborting due to previous error

error: Could not compile `testmqtt`.

To learn more, run the command again with --verbose.

Вот подробный вывод

Чтобы узнать больше, запустите команду еще раз с --verbose.

PS C:\Users\Pierre\rust\testmqtt> cargo run --verbose
       Fresh mosquitto-client v0.1.5
   Compiling testmqtt v0.1.0 (C:\Users\Pierre\rust\testmqtt)
     Running `rustc --edition=2018 --crate-name testmqtt src\main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e2a79a549b8dacef -C extra-filename=-e2a79a549b8dacef --out-dir C:\Users\Pierre\rust\testmqtt\target\debug\deps -C incremental=C:\Users\Pierre\rust\testmqtt\target\debug\incremental -L dependency=C:\Users\Pierre\rust\testmqtt\target\debug\deps --extern mosquitto_client=C:\Users\Pierre\rust\testmqtt\target\debug\deps\libmosquitto_client-23967bfdaa3a5433.rlib`error: linking with `link.exe` failed: exit code: 1181
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.23.28105\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.18yxopwcqksqllf0.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.26hriqf9eoqoz70e.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.287dmq688xsz3isv.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2e77zj76zbvh065j.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2huuzosvc51r1ocl.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2o9r9r2t2clr39wq.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.2wggiqwux76jad1h.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.3mqzooten3ugyse9.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.3vqvdeaqidai2p26.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4fnmrub2ky4biwf5.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4tdiuzs0kqadbi75.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.4u40iyf9g9kmiphf.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.51m4wneyq731nq60.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.5d67na1jjhizscb4.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.ap2kea3xxb47i5p.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.h5xgbt8abre0rtw.rcgu.o" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.vlg3p2hoy45m5m6.rcgu.o" "/OUT:C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.exe" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\testmqtt-e2a79a549b8dacef.49ivjbnnhficmjo4.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps" "/LIBPATH:C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Pierre\\rust\\testmqtt\\target\\debug\\deps\\libmosquitto_client-23967bfdaa3a5433.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-8864852919b3dde3.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-60bab00b06422126.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libbacktrace-e90b3ab99b608a07.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-d9b7b1604d471c6c.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-a439eac7fda93b7a.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-058c975bf38e4686.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-711d56157cf28645.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-d802c196c150a787.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-7147008fc56d32b8.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-57b2ee5c835455f8.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-6391a360e3eeafba.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-6c8df881cdc2afb2.rlib" "C:\\Users\\Pierre\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-f998976453a15b70.rlib" "mosquitto.lib" "c.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
  = note: Non-UTF-8 output: LINK : fatal error LNK1181: impossible d\'ouvrir le fichier en entr\xe9e \'mosquitto.lib\'\r\n     

error: aborting due to previous error

error: Could not compile `testmqtt`.

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name testmqtt src\main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e2a79a549b8dacef -C extra-filename=-e2a79a549b8dacef --out-dir C:\Users\Pierre\rust\testmqtt\target\debug\deps -C incremental=C:\Users\Pierre\rust\testmqtt\target\debug\incremental -L dependency=C:\Users\Pierre\rust\testmqtt\target\debug\deps --extern mosquitto_client=C:\Users\Pierre\rust\testmqtt\target\debug\deps\libmosquitto_client-23967bfdaa3a5433.rlib` (exit code: 1)

Это возможно сделать, не так ли?

С уважением,

Пьер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...