фатальная ошибка LNK1181: не удается открыть входной файл ‘gtk-3.lib’

#rust #gtk-rs

#Ржавчина #gtk-rs

Вопрос:

Итак, я настроил GTK-rs для rust, и я, должно быть, сделал что-то не так, потому что, когда я пытаюсь запустить свой код, он возвращает эту ошибку, и я понятия не имею, как это исправить:

fatal error LNK1181: cannot open input file 'gtk-3.lib'

Я использую Eclipse IDE, если это поможет.

Еще некоторые данные, которые могут помочь:

Мои переменные среды:

 GTK_LIB_DIR=C:msys64mingw64lib
PATH:
  C:msys64mingw64bin
  C:msys64mingw64include
  

Мой файл Cargo.toml:

 [package]
name = "myapp"
version = "0.1.0"
authors = ["author"]
edition = "2018"

[dependencies.gtk]
version = "0.9.2"
features = ["v3_16"]

[dependencies]
glib = "0.10.2"
gio = "0.9.1"


  

Я использовал несколько измененных примеров кода для тестирования:

 #![allow(non_snake_case)]
extern crate gtk;
extern crate glib;
extern crate gio;

use gio::prelude::*;
use glib::clone;
use gtk::prelude::*;

// When the application is launched…
fn on_activate(application: amp;gtk::Application) {
    // … create a new window …
    let window = gtk::ApplicationWindow::new(application);
    // … with a button in it …
    let button = gtk::Button::with_label("Hello World!");
    // … which closes the window when clicked
    button.connect_clicked(clone!(@weak window => move |_| window.close()));
    window.add(amp;button);
    window.show_all();
}

fn main() {
    // Create a new application
    let app = gtk::Application::new(Some("com.github.gtk-rs.examples.basic"), Default::default())
        .expect("Initialization failed...");
    app.connect_activate(|app| on_activate(app));
    // Run the application
    app.run(amp;std::env::args().collect::<Vec<_>>());
}
  

Ответ №1:

У меня была такая же проблема с «link.exe » при использовании привязок gstreamer и gtk Rust. Вот что я сделал, чтобы скомпилировать свою программу.

Загрузите средства сборки Microsoft и установите следующее в дополнение к инструментам «по умолчанию», которые устанавливаются при проверке «Средства сборки C «.

Параметры MS Build Tools — кредит https://github.com/rust-lang/rust/issues/44787

После установки убедитесь, что «C:Program Files (x86) Microsoft Visual Studio 2019 BuildTools VC Tools MSVC <Версия VC> bin Hostx64 x64» находится в вашем пути к среде.

Перезагрузите компьютер и повторите попытку компиляции. Надеюсь, это сработает. Однако, если это все еще не так, я рекомендую удалить Rust из powershell

 rustup self uninstall
  

А затем переустановить Rust из rustup.exe таким образом.

  1. Выполнить rustup.exe

  2. При появлении запроса с опцией установки выберите «настроить установку»

  3. Для опции «тройки хоста по умолчанию» введите

    стабильный-x86_64-pc-windows-gnu

  4. Нажмите enter для остальных параметров по умолчанию и продолжайте установку.

Перезагрузите компьютер, и программа обязательно скомпилируется.

Комментарии:

1. Это не решает проблему — даже невозможно следовать этим инструкциям, поскольку указанные вами параметры отсутствуют в текущем индексе рабочей нагрузки.

2. @BadZen Что вы вообще подразумеваете под «индексом текущей рабочей нагрузки»?