Giter Site home page Giter Site logo

examples's Introduction

gtk3-rs CI

This project is UNMAINTAINED. Please take a look at gtk4-rs instead!

The gtk-rs organization aims to provide safe Rust binding over GObject-based libraries. You can find more about it on https://gtk-rs.org.

This repository contains all the "core" crates of the gtk-rs organization. For more information about each crate, please refer to their README.md file in their directory.

Minimum supported Rust version

Currently, the minimum supported Rust version is 1.70.0.

Documentation

Ecosystem

The gtk3-rs repository contains Rust crates for GTK 3. However there is a large ecosystem of GObject libraries and many of these libraries have Rust bindings based on the tooling included in gtk-rs. Of particular note:

  • gtk-rs-core - bindings for some of the core libraries such as glib, gio, pango, graphene
  • gstreamer-rs - bindings for the GStreamer media framework

Additionally, Rust bindings for various libraries are hosted on GNOME's GitLab instance and can be found at https://gitlab.gnome.org/World/Rust.

When using crates that are not part of the gtk-rs repository, you will need to be careful and ensure that they do not pull in incompatible versions of core crates like glib-rs.

Regenerating

To regenerate crates using gir, please use the generator.py file as follows:

$ python3 generator.py

If you didn't do so yet, please check out all the submodules before via

$ git submodule update --checkout

Development

This repository is mostly split into two branches: master and crate. master contains the not yet released code and is where new developments are happening. crate contains the last release source code and isn't supposed to be updated.

This repository is structured as follows:

- crate/
   |
   |-- README.md
   |-- Gir.toml
   |-- Cargo.toml
   |-- src/
   |-- sys/

The crate is a "top" directory (so "atk" or "gdk" in here for example). Each crate contains:

  • README.md: explanations about the crate itself and eventually some details.
  • Cargo.toml: descriptor of the crate, used by cargo and Rust.
  • Gir.toml: configuration used by gir to generate most of the crates' code.
  • src: the source code of the crate.
  • sys: the 1:1 bindings of the C API.

The gir and gir-files top folders are not crates, but are git submodules which respectively contain the gir tool and the gir files used by the generator.

When running generator.py the tool will automatically update these git submodules and run the gir tool on the gir files to regenerate the code.

During development, it is useful to execute the generator with a different version of the gir tool or of the gir files, for instance to test if the code generation is successful before submitting a pull request to update one of the submodules. This can be done by specifying arguments to the generator script, for instance, to run the generator on a local copy of the gir files:

$ python3 generator.py --gir-files-directory ../gir-files/

See python3 generator.py --help for more details.

examples's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

examples's Issues

Can't cargo build

Cloned this repository and ran cargo build. Seems like a problem with glib.

Full error (for posterity):

$ cargo build --verbose
       Fresh unicode-xid v0.2.0
       Fresh pkg-config v0.3.17
       Fresh futures-core v0.3.1
       Fresh futures-sink v0.3.1
       Fresh pin-utils v0.1.0-alpha.4
       Fresh semver-parser v0.7.0
       Fresh futures-task v0.3.1
       Fresh slab v0.4.2
       Fresh futures-io v0.3.1
       Fresh lazy_static v1.4.0
       Fresh autocfg v0.1.7
       Fresh cfg-if v0.1.10
       Fresh scopeguard v1.0.0
       Fresh futures-channel v0.3.1
       Fresh semver v0.9.0
       Fresh lock_api v0.3.2
       Fresh proc-macro2 v1.0.6
       Fresh proc-macro-nested v0.1.3
       Fresh memchr v2.2.1
       Fresh libc v0.2.66
       Fresh bitflags v1.2.1
       Fresh rustc_version v0.2.3
       Fresh maybe-uninit v2.0.0
       Fresh quote v1.0.2
       Fresh glib-sys v0.9.1
       Fresh winapi v0.3.8
       Fresh syn v1.0.11
       Fresh gobject-sys v0.9.1
       Fresh smallvec v0.6.13
       Fresh cairo-sys-rs v0.9.2
       Fresh num-traits v0.2.10
       Fresh proc-macro-hack v0.5.11
       Fresh gio-sys v0.9.1
       Fresh pango-sys v0.9.1
       Fresh atk-sys v0.9.1
       Fresh time v0.1.42
       Fresh futures-macro v0.3.1
       Fresh num-integer v0.1.41
       Fresh gdk-pixbuf-sys v0.9.1
       Fresh parking_lot_core v0.6.2
       Fresh pangocairo-sys v0.10.1
       Fresh futures-util v0.3.1
       Fresh gdk-sys v0.9.1
       Fresh parking_lot v0.9.0
       Fresh chrono v0.4.10
       Fresh futures-executor v0.3.1
       Fresh gtk-sys v0.9.2
       Fresh once_cell v0.2.4
   Compiling glib v0.9.0
       Fresh futures v0.3.1
     Running `rustc --crate-name glib 'C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\lib.rs' --color always --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 -C metadata=73b81ba2358d3816 -C extra-filename=-73b81ba2358d3816 --out-dir 'C:\Users\coat\projects\examples\target\debug\deps' -L 'dependency=C:\Users\coat\projects\examples\target\debug\deps' --extern 'bitflags=C:\Users\coat\projects\examples\target\debug\deps\libbitflags-b1395f344039d05d.rlib' --extern 'futures_channel=C:\Users\coat\projects\examples\target\debug\deps\libfutures_channel-68852a63636fddc8.rlib' --extern 'futures_core=C:\Users\coat\projects\examples\target\debug\deps\libfutures_core-b1b46847370a7821.rlib' --extern 'futures_executor=C:\Users\coat\projects\examples\target\debug\deps\libfutures_executor-674ec4c1f7fa408c.rlib' --extern 'futures_task=C:\Users\coat\projects\examples\target\debug\deps\libfutures_task-fa8a8d4807baa79f.rlib' --extern 'futures_util=C:\Users\coat\projects\examples\target\debug\deps\libfutures_util-8ea60fb50b20f509.rlib' --extern 'glib_sys=C:\Users\coat\projects\examples\target\debug\deps\libglib_sys-3059b5a5052d8e48.rlib' --extern 'gobject_sys=C:\Users\coat\projects\examples\target\debug\deps\libgobject_sys-df9a3972344e4eda.rlib' --extern 'lazy_static=C:\Users\coat\projects\examples\target\debug\deps\liblazy_static-073c1bf7cf25efcd.rlib' --extern 'libc=C:\Users\coat\projects\examples\target\debug\deps\liblibc-88b80babc57dc9d3.rlib' --cap-lints allow`
error: expected `*` or `+`
  --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:80:46
   |
80 |     ($($variable:ident).+ $(as $rename:ident)?) => (
   |                                              ^
   |
   = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
  --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:95:63
   |
95 |     (@ $keyword:ident $($variable:ident).+ $(as $rename:ident)?) => (
   |                                                               ^
   |
   = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:115:25
    |
115 |     ($(as $rename:ident)? @default-panic, @strong $($variable:ident).+) => {};
    |                         ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:128:25
    |
128 |     ($(as $rename:ident)? @strong $($variable:ident).+ , $return_value:expr) => {};
    |                         ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:129:25
    |
129 |     ($(as $rename:ident)? @ $keyword:ident $($variable:ident).+, $return_value:expr) => {};
    |                         ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:332:28
    |
332 |     ($($(@ $strength:ident)? self),+ => $($_:tt)* ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:335:28
    |
335 |     ($($(@ $strength:ident)? $up:ident.$($variables:ident).+),+ => $($_:tt)* ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:338:28
    |
338 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => @default-panic, move || $body:block ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:338:71
    |
338 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => @default-panic, move || $body:block ) => (
    |                                                                       ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:347:28
    |
347 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move || $body:block ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:347:71
    |
347 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move || $body:block ) => (
    |                                                                       ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:347:117
    |
347 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move || $body:block ) => (
    |                                                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:357:28
    |
357 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => @default-panic, move | $($pattern:pat),* | $body:block ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:357:71
    |
357 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => @default-panic, move | $($pattern:pat),* | $body:block ) => (
    |                                                                       ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:366:28
    |
366 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move | $($pattern:pat),* | $body:block ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:366:71
    |
366 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move | $($pattern:pat),* | $body:block ) => (
    |                                                                       ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:366:117
    |
366 |     ($($(@ $strength:ident)? $($variables:ident).+ $(as $rename:ident)?),+ => $(@default-return $return_value:expr,)? move | $($pattern:pat),* | $body:block ) => (
    |                                                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:376:28
    |
376 |     ($($(@ $strength:ident)? $variables:expr),+ => $($_:tt)* ) => (
    |                            ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:340:54
    |
340 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                      ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:340:85
    |
340 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:342:56
    |
342 |                 $( $crate::to_type_after!($(as $rename)? @default-panic, $(@ $strength)? $($variables).+);)*
    |                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:342:88
    |
342 |                 $( $crate::to_type_after!($(as $rename)? @default-panic, $(@ $strength)? $($variables).+);)*
    |                                                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:349:54
    |
349 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                      ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:349:85
    |
349 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:351:80
    |
351 |                 let return_value = || $crate::to_return_value!($($return_value)?);
    |                                                                                ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:352:56
    |
352 |                 $( $crate::to_type_after!($(as $rename)? $(@ $strength)? $($variables).+, return_value );)*
    |                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:352:72
    |
352 |                 $( $crate::to_type_after!($(as $rename)? $(@ $strength)? $($variables).+, return_value );)*
    |                                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:359:54
    |
359 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                      ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:359:85
    |
359 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:361:56
    |
361 |                 $( $crate::to_type_after!($(as $rename)? @default-panic, $(@ $strength)? $($variables).+);)*
    |                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:361:88
    |
361 |                 $( $crate::to_type_after!($(as $rename)? @default-panic, $(@ $strength)? $($variables).+);)*
    |                                                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:368:54
    |
368 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                      ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:368:85
    |
368 |             $( $crate::to_type_before!($(@ $strength)? $($variables).+ $(as $rename)?); )*
    |                                                                                     ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:370:80
    |
370 |                 let return_value = || $crate::to_return_value!($($return_value)?);
    |                                                                                ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:371:56
    |
371 |                 $( $crate::to_type_after!($(as $rename)? $(@ $strength)? $($variables).+, return_value);)*
    |                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: expected `*` or `+`
   --> C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\clone.rs:371:72
    |
371 |                 $( $crate::to_type_after!($(as $rename)? $(@ $strength)? $($variables).+, return_value);)*
    |                                                                        ^
    |
    = note: `?` is not a macro repetition operator in the 2015 edition, but is accepted in the 2018 edition

error: aborting due to 36 previous errors

error: Could not compile `glib`.

Caused by:
  process didn't exit successfully: `rustc --crate-name glib 'C:\Users\coat\.cargo\registry\src\github.com-1ecc6299db9ec823\glib-0.9.0\src\lib.rs' --color always --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 -C metadata=73b81ba2358d3816 -C extra-filename=-73b81ba2358d3816 --out-dir 'C:\Users\coat\projects\examples\target\debug\deps' -L 'dependency=C:\Users\coat\projects\examples\target\debug\deps' --extern 'bitflags=C:\Users\coat\projects\examples\target\debug\deps\libbitflags-b1395f344039d05d.rlib' --extern 'futures_channel=C:\Users\coat\projects\examples\target\debug\deps\libfutures_channel-68852a63636fddc8.rlib' --extern 'futures_core=C:\Users\coat\projects\examples\target\debug\deps\libfutures_core-b1b46847370a7821.rlib' --extern 'futures_executor=C:\Users\coat\projects\examples\target\debug\deps\libfutures_executor-674ec4c1f7fa408c.rlib' --extern 'futures_task=C:\Users\coat\projects\examples\target\debug\deps\libfutures_task-fa8a8d4807baa79f.rlib' --extern 'futures_util=C:\Users\coat\projects\examples\target\debug\deps\libfutures_util-8ea60fb50b20f509.rlib' --extern 'glib_sys=C:\Users\coat\projects\examples\target\debug\deps\libglib_sys-3059b5a5052d8e48.rlib' --extern 'gobject_sys=C:\Users\coat\projects\examples\target\debug\deps\libgobject_sys-df9a3972344e4eda.rlib' --extern 'lazy_static=C:\Users\coat\projects\examples\target\debug\deps\liblazy_static-073c1bf7cf25efcd.rlib' --extern 'libc=C:\Users\coat\projects\examples\target\debug\deps\liblibc-88b80babc57dc9d3.rlib' --cap-lints allow` (exit code: 1)

Trying on windows

I followed the requirements instrunction so I have

echo %GTK_LIB_DIR% 
C:\msys64\mingw64\lib
echo %PATH%
... C:\msys64\mingw64\bin;

and when I launch cargo build I got:
= note: LINK : fatal error LNK1181: cannot open input file 'gtk-3.lib'

rustc 1.31.1 (b6c32da9b 2018-12-18)

Progress bar example when button is pressed

when I try to do progress bar update when a button is clicked, nothing is updated until the button click code is completed. Does any one have an example for using the Progress Bar?

Code sharing location?

I am in the process of converting python-QT to rust-GTK. I would like to share them. Both to help others & to get comments on my code for improvement. Do you know of site to best do this?

could not compile due to LINK error

I used rustc 1.28.0 in IDEA on WIN1064x machine, and could compile other projects. But not lucky with gtk-rs.

error: linking with C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX64\x64\link.exe failed: exit code: 1181
|
= note: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX64\x64\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\Users\Administrator\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\Administrator\Desktop\gtk\target\debug\deps\clock-0cbd5ba87e55ec12.10ygozpgsu0ud2lu.rcgu.o" "C:\Users\Administrator\Desktop\gtk\target\debug\deps\clock-0cbd5ba87e55ec12.16u6js6g0l3k1ic6.rcgu.o"
...
...
= note: Non-UTF-8 output: LINK : fatal error LNK1181: \xce\xde\xb7\xa8\xb4\xf2\xbf\xaa\xca\xe4\xc8\xeb\xce\xc4\xbc\xfe\xa1\xb0gtk-3.lib\xa1\xb1\r\n

error: aborting due to previous error

clutter-gtk rust binding?

I'm sorry, I don't know where else to ask this. Are there rust binding for Clutter-gtk. I really would like to implement drag n drop from clutter to GTK window, anyone know how?

Example for TextView with TextBuffer and TextTag

Can you create an example of using a TextView with TextBuffer and TextTag? It seems like TextTags also need gdk::Atoms, but I don't know how to create it or if that is really necessary. An example with a TextView and maybe one or two applied styles using TextTags would clear things up.

Windows

Build failed, waiting for other jobs to finish...
error: linking with gcc failed: exit code: 1
|
= note: "gcc" "-Wl,--enable-long-section-names" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\Program Files\Rust stable GNU 1.16\lib\r
ustlib\x86_64-pc-windows-gnu\lib\crt2.o" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\rsbegin.o" "-L" "C:\Program Fi
les\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib" "D:\examples\target\debug\deps\multithreading_context-16409705b3c5ece5.0.o" "-o" "D:
\examples\target\debug\deps\multithreading_context-16409705b3c5ece5.exe" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "D:\examples\target\debug\deps" "-L"
"C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "D:\examples\target\debug\deps\libgtk-
b75070d394db431b.rlib" "D:\examples\target\debug\deps\libgtk_sys-d6a702c36b9163af.rlib" "D:\examples\target\debug\deps\libgio-3f9c7f1b95d63cae.rlib"
"D:\examples\target\debug\deps\libpango-5dff3ce5d9479dad.rlib" "D:\examples\target\debug\deps\libatk_sys-4c92419d575bce35.rlib" "D:\examples\target
\debug\deps\libgdk-01d71676dd62d208.rlib" "D:\examples\target\debug\deps\libcairo-797883c772650ade.rlib" "D:\examples\target\debug\deps\libgdk_pix
buf-11e9df44bfa4bcd2.rlib" "D:\examples\target\debug\deps\libglib-fea96c909af070b7.rlib" "D:\examples\target\debug\deps\libbitflags-8510a47beebe00a6.
rlib" "D:\examples\target\debug\deps\libgdk_sys-77693c795ea1765f.rlib" "D:\examples\target\debug\deps\libcairo_sys-97f77cde66cc6e14.rlib" "D:\exampl
es\target\debug\deps\libwinapi-a5898d7aceb63fac.rlib" "D:\examples\target\debug\deps\libpango_sys-f40c5761e34216c0.rlib" "D:\examples\target\debug
\deps\libgdk_pixbuf_sys-e605de4e90e7ae24.rlib" "D:\examples\target\debug\deps\libgio_sys-057d4bc21ac4b427.rlib" "D:\examples\target\debug\deps\libgo
bject_sys-4ba000a4d9f2cf78.rlib" "D:\examples\target\debug\deps\libglib_sys-895440df8bd9794c.rlib" "D:\examples\target\debug\deps\libbitflags-6c0c42f
1f858d67c.rlib" "D:\examples\target\debug\deps\liblibc-5dc7b85e748840b4.rlib" "D:\examples\target\debug\deps\libc_vec-3ad5b18b850a7482.rlib" "C:\Pro
gram Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\libstd-2534c0bd05ee265e.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustli
b\x86_64-pc-windows-gnu\lib\libpanic_unwind-e3cf511e7374526b.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\libun
wind-52e8ab7efa40b1b3.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\liblibc-96a4c6f6006d0a44.rlib" "C:\Program Fil
es\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\librand-32b552aabc8b4e3c.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_
64-pc-windows-gnu\lib\libcollections-4965c4d8d37432ab.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\liballoc-8bdc
91ebec92bb48.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\liballoc_system-1769b774bd375392.rlib" "C:\Program File
s\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\libstd_unicode-feba27dd5784a3dc.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib
\x86_64-pc-windows-gnu\lib\libcore-d1dd5a39fb635c62.rlib" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\libcompiler_bu
iltins-35b663261c982c37.rlib" "-l" "gtk-3" "-l" "gdk-3" "-l" "atk-1.0" "-l" "gdk-3" "-l" "cairo" "-l" "pango-1.0" "-l" "gdk_pixbuf-2.0" "-l" "gio-2.0" "-l" "go
bject-2.0" "-l" "glib-2.0" "-l" "gobject-2.0" "-l" "advapi32" "-l" "ws2_32" "-l" "userenv" "-l" "shell32" "-l" "gcc_eh" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvc
rt" "-luser32" "-lkernel32" "C:\Program Files\Rust stable GNU 1.16\lib\rustlib\x86_64-pc-windows-gnu\lib\rsend.o"
= note: ld: cannot find -lgtk-3
ld: cannot find -lgdk-3
ld: cannot find -latk-1.0
ld: cannot find -lgdk-3
ld: cannot find -lcairo
ld: cannot find -lpango-1.0
ld: cannot find -lgdk_pixbuf-2.0
ld: cannot find -lgio-2.0
ld: cannot find -lgobject-2.0
ld: cannot find -lglib-2.0
ld: cannot find -lgobject-2.0

error: aborting due to previous error

error: build failed

Check for and fix all reference cycles in closures

One very direct example is here:

window.connect_delete_event(clone!(window => move |_, _| {
window.destroy();
Inhibit(false)
}));

The window will never be destroyed here because it keeps another strong reference to itself via the closure. Here this is completely unneeded even, the first parameter to the closure would already be the window.

In other cases we should use weak references instead if the data is not available from somewhere else.


The same problem can also happen in other places with Arc/Rc, and also indirectly between GObjects and those types. We should check all closures if they directly or indirectly (A has a reference to B, B has a reference to C, C has a reference to A) creates a reference cycle.

Checking all calls to clone() and usages of the clone! macro would be a good start.

Example of getting Notebook content in a type safe manner

I saw the example at https://github.com/gtk-rs/examples/blob/master/src/bin/notebook.rs and it is great. I am using it in my own project and it showed me how to customize "Types" of Widgets.

Now I would like to see an example for getting the content of a notebook page, changing it and adding it back to the notebook all in a type safe manner. The problem is that I get back a Option<Widget>, instead of whatever type I say I'll add to the Notebook. When I try to get back what I put in, obviously I know what it should be, but Rust seems not to know:

let the_tab: Option<Widget> = notebook.get_nth_page(4);  // just get the widget which was added in the fifth tab of the notebook

Then I could to the following:

let label = match the_tab {
    Some(widget) => widget.downcast::<Label>(),
    None => // what to do here?
};

I found downcast in the autogenerated docs from cargo doc in the Cast trait, after searching for an hour or more how to cast something, but still the problem is not solved, because I don't know how to handle the None case. The label must have some simple type like Label, so that I can call all the functions which are implemented for that type and work with what I got from the Notebook.

I am still a beginner in Rust, but I don't know how to proceed here. I think I would have to pass a type at creation time of the Notebook, in order to let Rust know what comes back, but that would not change the interface to suddenly give me not only Option<Widget>, but the actual more specific contained type.

An example of how to deal with such things in gtk-rs would be of great use.

Error when running examples

I'm submitting this error for posterity. I'm on an Ubuntu WSL.

Received this error when running some examples. Curiously enough, this did not happen originally, as the first few examples I tried did not produce any errors.

(accessibility:3616): GLib-GIO-CRITICAL **: 12:29:00.830: g_dbus_proxy_new_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed

gtkiconview from model example

no luck generating iconview from model. Problem with pixbuf definition. Would be deeply appreciated if some could provide an example.

Autodetect gtk version

Now the user must manually select the version of gtk in the program, at the GTK-rs has autodetection of the current version

cairo_threads example is suboptimal

    gtk::timeout_add(100, move || {
        while let Ok((thread_num, buf)) = ready_rx.try_recv() {
            ...
        }
        Continue(true)
    });

Instead of try_recv() this should properly integrate the channel and the main context so that the main context is only woken up when the channel has data.

could not compile `gtk-rs-examples`

I updated rust. Then, I cloned examples and tried to build them. Got the following error on a 2015 13" Macbook Pro:

vishaldpatel@ElMac gtk_examples % cargo build --verbose Fresh pkg-config v0.3.17 Fresh unicode-xid v0.2.0 Fresh futures-core v0.3.4 Fresh futures-sink v0.3.4 Fresh slab v0.4.2 Fresh futures-io v0.3.4 Fresh futures-task v0.3.4 Fresh pin-utils v0.1.0-alpha.4 Fresh semver-parser v0.7.0 Fresh lazy_static v1.4.0 Fresh autocfg v1.0.0 Fresh scopeguard v1.1.0 Fresh cfg-if v0.1.10 Fresh cc v1.0.50 Fresh futures-channel v0.3.4 Fresh semver v0.9.0 Fresh lock_api v0.3.3 Fresh libc v0.2.67 Fresh proc-macro2 v1.0.9 Fresh proc-macro-nested v0.1.3 Fresh memchr v2.3.3 Fresh bitflags v1.2.1 Fresh rustc_version v0.2.3 Fresh maybe-uninit v2.0.0 Fresh glib-sys v0.9.1 Fresh time v0.1.42 Fresh quote v1.0.2 Fresh smallvec v0.6.13 Fresh num-traits v0.2.11 Fresh gobject-sys v0.9.1 Fresh cairo-sys-rs v0.9.2 Fresh syn v1.0.16 Fresh pango-sys v0.9.1 Fresh gio-sys v0.9.1 Fresh num-integer v0.1.42 Fresh proc-macro-hack v0.5.11 Fresh atk-sys v0.9.1 Fresh parking_lot_core v0.6.2 Fresh gdk-pixbuf-sys v0.9.1 Fresh pangocairo-sys v0.10.1 Fresh futures-macro v0.3.4 Fresh chrono v0.4.10 Fresh gdk-sys v0.9.1 Fresh parking_lot v0.9.0 Fresh futures-util v0.3.4 Fresh gtk-sys v0.9.2 Fresh once_cell v0.2.4 Fresh futures-executor v0.3.4 Fresh glib v0.9.3 Fresh futures v0.3.4 Fresh cairo-rs v0.8.1 Fresh gio v0.8.1 Fresh pango v0.8.0 Fresh atk v0.8.0 Fresh gdk-pixbuf v0.8.0 Fresh pangocairo v0.9.0 Fresh gdk v0.12.1 Fresh gtk v0.8.1 Compiling gtk-rs-examples v0.0.1 (/Users/vishaldpatel/Learning/Rust/gtk_examples) Running rustc --crate-name css src/bin/css.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=a7169503a2fb6144 -C extra-filename=-a7169503a2fb6144 --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/outRunningrustc --crate-name cairo_threads src/bin/cairo_threads.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=8c1392fd3ee89d8e -C extra-filename=-8c1392fd3ee89d8e --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/outRunningrustc --crate-name multithreading_context src/bin/multithreading_context.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=29ca606f7d9ac902 -C extra-filename=-29ca606f7d9ac902 --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/outRunningrustc --crate-name notebook src/bin/notebook.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=efdce1ed07f3e34b -C extra-filename=-efdce1ed07f3e34b --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/outerror: linking withcc` failed: exit code: 1
|
= note: "cc" "-m64" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.12nzpd53j5rek61e.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1dxtm8587vwy7wdd.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1hwt86sha0bgnw6z.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1iae53du7ihada13.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1is7t5kuhj2xu0kb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1mf1m9t8l21guyy2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1mixxh8t3ql8ogif.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1tbxc9otzprbxxgq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.1zpzat9ws539q42c.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.204dz5rbxa2biuc.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.23cvlepfbry74rzk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.25b04hmczmbf8551.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.267sgdk71ndjwj5r.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.2cxdtyipn26misz8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.2e6ivwb4kkkf8jcj.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.2mj7znjzeqbxc1o2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.2tol6ksxnx9qgl9z.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.33kpactuag326wpt.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.34fxsbk0lzef8nwx.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.38z1q2qfedg1l617.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3cbxsncv7b7tiduq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3d4vjcumsa7uhd4g.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3d6y50mbieiaf9ot.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3e2l94dpnxf6kxb8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3ffko8t8ra78vcfi.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3fgbzzfxxjt4zdeo.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3hf1n2tcpkoko5ye.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3irixtkdq1qf5v64.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3qslupbxjj3tqdrr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.3uukj54tqv19ges6.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.41hx66xwhueiaw2y.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.475h4s6sg13h37dw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.47aumwfdlxzfjrqh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4a0yurq8ez5orpkh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4b1j0ca8if60eitw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4cpkfybhwf38sei9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4d8mdaayr5qvbueg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4gt7zx9anec3glwn.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4gyfhxdc54spn5xc.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4hqtonej13yr8xpy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.4jsczb9upir6hp02.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.50bzyf40ukjwciee.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.5cs33vqh6wq1oxf2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.97hdvbz3j7xt9rs.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.c04rc4be8kbfqa3.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.di0ih3r0es3ig3e.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.eb0mr4dywqu4gn6.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.qdw0sxnej59ruoq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.rlh9lzxyeshu8ko.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.v2vv4071tsqpvs1.rcgu.o" "-o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/css-a7169503a2fb6144.363dwqjxdyww5mc2.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk_sys-c9e0d368fa31949c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk_sys-28447d8a6ed82374.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_sys-a8d4a2957851bade.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango_sys-64778dff4e1b03b0.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo_sys-c01d574b8ed6199e.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_executor-1908547745cb9d18.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_util-20faf1365e0186d3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libmemchr-4d102d4f1b06df6a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libproc_macro_nested-2371890767c12a11.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_io-c14e3cdd2821dbcd.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libslab-cf97c9649c4795dc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpin_utils-13efb437786a044d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_task-cd9d8b938bf8e858.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_channel-dd2b7c03a36dc082.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_sink-6bde5f1a0d4914c1.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_core-9d1ccd4feda85275.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblazy_static-a489a9dd01075252.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libbitflags-ac95352956904bed.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf_sys-397e83ef71b97aa6.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio_sys-1a21eb43759ae03d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblibc-2f697bcb367999fc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-ce17fe05fa88fff7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-88250736fdfd488b.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-b4c23b5d831b61ea.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-52678edf67c3cbfc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace-aa90723925b767c3.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-1ad31f0e1f5330bc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-572bf915a75bf178.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-709b6ef89ca6e6af.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-174360cf12ee1390.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-45e1eff5d23696f7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-d67c1d4ca132d737.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-41d0f9161f0005e8.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-f090ec23084537ee.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7c4cbb62cd53c96a.rlib" "-framework" "AppKit" "-framework" "CoreFoundation" "-lgtk-3" "-lgdk-3" "-latk-1.0" "-lgdk-3" "-lpango-1.0" "-lcairo" "-lcairo-gobject" "-lgdk_pixbuf-2.0" "-lgio-2.0" "-lgobject-2.0" "-lgobject-2.0" "-lglib-2.0" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: library not found for -lgtk-3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile gtk-rs-examples.

Caused by:
process didn't exit successfully: rustc --crate-name css src/bin/css.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=a7169503a2fb6144 -C extra-filename=-a7169503a2fb6144 --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.10z62rn67uce3kej.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.13oqduzr5wmznuyy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.13xykvputmgt3pt8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.16sxctdj9hj89fuv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1kduv3fr4usnu4rn.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1lcwt19oqik6i1ib.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1lkn8anwfv2orvib.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1qpp07ooa60epqmu.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1rr5nsurvytxy3ls.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1suwb4hgg1blouh9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1us0ast4di4qqsgz.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1x5om7ig2hxuscvj.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.1yf1mk09j9z3gibk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.27filmcv0lgr11qj.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.2fg4kun1pdnxaakg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.2hk7ct7z9yn7if11.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3akzkqjlz1ik8zk8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3bhnjv53uqs2alv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3ez0lhkqpgsmmxs0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3f55stod5wst5gcw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3fl3hn0l9g5dizdg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3k1ju9qjx9q2t8gg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3lcvq1gp1exdmgpr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3n2s75y3b5j4q5m7.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3psbvguqza182v6e.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3vj5ifz43t0d4obu.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.3wznlvkk9u0ft1is.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.400emr4t3garfsdl.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.46h363yuuiwwrym2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.47mn4dl52k48tf0n.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.4apyaeyrvzapfj6t.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.4kp0tuchjbxilzrv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.505etqvvmckr7c8a.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.558mq7hem5io7kmc.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.574d6y2fo8dl6j9j.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.57a4ndc56o0n5xxw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.59nt6lo8m9gnjao5.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.59u9mryiuu5r3ke0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.5b8mwq3zpruj9vqp.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.8f1t4a3uxvvoku8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.9dygcuei4xc5exg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.9wzjeyr6bn9uxbg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.aor0ol8vmbt1il3.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.c4gh1g3tujlxeux.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.f1et1wzsk7d0rvb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.nagkwvu7e968n2y.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.t9s1sa9zmwa3rxq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.x82el2mgq1k6muc.rcgu.o" "-o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/notebook-efdce1ed07f3e34b.2zob73bp9jlpclkz.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk_sys-c9e0d368fa31949c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk_sys-28447d8a6ed82374.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_sys-a8d4a2957851bade.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango_sys-64778dff4e1b03b0.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf_sys-397e83ef71b97aa6.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo_sys-c01d574b8ed6199e.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio_sys-1a21eb43759ae03d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_executor-1908547745cb9d18.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_util-20faf1365e0186d3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libmemchr-4d102d4f1b06df6a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libproc_macro_nested-2371890767c12a11.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_io-c14e3cdd2821dbcd.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libslab-cf97c9649c4795dc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpin_utils-13efb437786a044d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_task-cd9d8b938bf8e858.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_channel-dd2b7c03a36dc082.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_sink-6bde5f1a0d4914c1.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_core-9d1ccd4feda85275.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblibc-2f697bcb367999fc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblazy_static-a489a9dd01075252.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libbitflags-ac95352956904bed.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-ce17fe05fa88fff7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-88250736fdfd488b.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-b4c23b5d831b61ea.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-52678edf67c3cbfc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace-aa90723925b767c3.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-1ad31f0e1f5330bc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-572bf915a75bf178.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-709b6ef89ca6e6af.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-174360cf12ee1390.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-45e1eff5d23696f7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-d67c1d4ca132d737.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-41d0f9161f0005e8.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-f090ec23084537ee.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7c4cbb62cd53c96a.rlib" "-framework" "AppKit" "-framework" "CoreFoundation" "-lgtk-3" "-lgdk-3" "-latk-1.0" "-lgdk-3" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lcairo" "-lcairo-gobject" "-lgio-2.0" "-lgobject-2.0" "-lgobject-2.0" "-lglib-2.0" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: library not found for -lgtk-3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile gtk-rs-examples.

Caused by:
process didn't exit successfully: rustc --crate-name notebook src/bin/notebook.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=efdce1ed07f3e34b -C extra-filename=-efdce1ed07f3e34b --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.10iu2nszdv6bh0f6.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.120624yd2c6ptn4e.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.12tkeaxqqnqwc7sg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1dbmi0jeotouj6en.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1g4pqzjfebr9rimi.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1h3ibk1ojnd99gg4.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1i60oeg8yz66jz9d.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1jzongm1vze2l6dz.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1lblgj607iev3e6w.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1lr487mrkesa7i2t.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1m8lrhh1s9ijvh4z.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1o8v4bpnz9763zkt.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1ofb2i6dad0kpgvg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1ot5bnte02vcuo5r.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1pnvijd8yz5mndkr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1rm1eqddp9wnq4uf.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1wqx3y3q44pd0d0u.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1xwztlfb6d9qdf1g.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1y41m38f7lqv3gr1.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.1zih7rkky9whopol.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.220kf9ae2nncpwlx.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.22k5w84yuhf2w0fh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2658mk9gdan96hx9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.272eg5jebbsepggw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2762fw08y8hyd7k1.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2bk3lv9drvzka4dr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2clx37t3c5v45oi3.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2hcogg9nt7rt03so.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2jey13qmxh7npox0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2m28en9ni42zediy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2mmipzhsy0ys392x.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2tgo8bprlp5ewd3s.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2wnctyqsxwby6wz3.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2xvgn7u251n78pyb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2z0qamftsseqp8ji.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.2z64upp0826xwk60.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.31akdmhhh9upfdv9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.395o2lwwrj50b4lx.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3a21hfub01iwk62e.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3abtrdm6w8u20bya.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3kug6l11w2nzg6or.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3m8w6g967uigee6m.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3q285nrwmwk6bseb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3rm4858ko9194mnv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3swjy27k6rfkaa8g.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3wfewg9ku15hw4kk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.3xypsooxw7dvdna2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.42mu93rci7glvsqg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.42ou00aq0ke0mudf.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.42w17kw6o9gqulza.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.431g3bwvnk9lweyu.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.44u1b1vxgiayfa51.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.466wy2b89b3uceaf.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.4e2ushpxd2hamb8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.4lojug1zp6pap6gx.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.4p58ndvajnmyll0q.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.4rsyv5ceqqjeiiu1.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.50mh5eoa3w4ih5ha.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.5363ci5wu3895isg.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.5bv6k43rbe8gmqm8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.5gbl8zg8ei8216cq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.5o4i8q2v5iqtijh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.baseo1ulhi349dj.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.cq2mvvi8k6s1ing.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.cwm133tomi0pqi2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.cyda9wesv9em9v7.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.dis1wwf5pmqyq04.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.fb4ol8yvs0iqdx0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.fggqz2tsl23j2iy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.gg6xqi0uwfocd6c.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.heezw1lv2ttd0s3.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.iuzjbzpnzh16hun.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.n9h87yoapij2g0a.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.nluo1to748u8e2s.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.pb7fai2bqtqp0ku.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.pe5k8obeety1bq8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.uy9fqs8aq6npjh6.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.z8kiwnahvwu0sge.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.zudr79xsobc9bkq.rcgu.o" "-o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/multithreading_context-29ca606f7d9ac902.329tujy9nxqc8byf.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk_sys-c9e0d368fa31949c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk_sys-28447d8a6ed82374.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_sys-a8d4a2957851bade.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango_sys-64778dff4e1b03b0.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf_sys-397e83ef71b97aa6.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo_sys-c01d574b8ed6199e.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio_sys-1a21eb43759ae03d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_executor-1908547745cb9d18.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_util-20faf1365e0186d3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libmemchr-4d102d4f1b06df6a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libproc_macro_nested-2371890767c12a11.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_io-c14e3cdd2821dbcd.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libslab-cf97c9649c4795dc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpin_utils-13efb437786a044d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_task-cd9d8b938bf8e858.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_channel-dd2b7c03a36dc082.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_sink-6bde5f1a0d4914c1.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_core-9d1ccd4feda85275.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblibc-2f697bcb367999fc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblazy_static-a489a9dd01075252.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libbitflags-ac95352956904bed.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-ce17fe05fa88fff7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-88250736fdfd488b.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-b4c23b5d831b61ea.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-52678edf67c3cbfc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace-aa90723925b767c3.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-1ad31f0e1f5330bc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-572bf915a75bf178.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-709b6ef89ca6e6af.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-174360cf12ee1390.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-45e1eff5d23696f7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-d67c1d4ca132d737.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-41d0f9161f0005e8.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-f090ec23084537ee.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7c4cbb62cd53c96a.rlib" "-framework" "AppKit" "-framework" "CoreFoundation" "-lgtk-3" "-lgdk-3" "-latk-1.0" "-lgdk-3" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lcairo" "-lcairo-gobject" "-lgio-2.0" "-lgobject-2.0" "-lgobject-2.0" "-lglib-2.0" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: library not found for -lgtk-3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile gtk-rs-examples.

Caused by:
process didn't exit successfully: rustc --crate-name multithreading_context src/bin/multithreading_context.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=29ca606f7d9ac902 -C extra-filename=-29ca606f7d9ac902 --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: linking with cc failed: exit code: 1
|
= note: "cc" "-m64" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.116qlx3ayqlea5tp.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.11zip5j42zp05vnm.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1439bia5z0ahgxt5.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.176n6dpc3amzrpqn.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.17sj8bqvue9xkywh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1acrdfpa4sxlbbze.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1aod7hxt4icoexyk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1b4d726bub2265zy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1ceh8c4cb7u6zj9j.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1ckc4yzswlyl7pef.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1d8bqc6clpg56plq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1e0ry5tfmya42fyb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1gxoti8ve4o8avfa.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1h2r10n15341hr5w.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1hhr8icokmevz4zp.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1lcwkkhdk684kljv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1n648ac2afvof1ma.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1rdpicg5wz9sfib8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1urlulhyg6rilrec.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.1wywiy7evqjzfizy.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.20nhdop9nsnbzbqv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.21ilendzs9rlm06z.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2479jxatg9zpd2nk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2du2l83i9zq9lgq8.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2dv46dhsyjdivdhx.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2f20rgc28ezq3ztw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2h0dnxukhxj4ep37.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2idp2puj9l7zlmgi.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2k2z3ufsnfxcgxqc.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2le372o26bb744le.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2n2wm4m2q8r0dkk6.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.2qta3e9cb006izg2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.349tmfe7ldzqnkv0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.34qtlxknevuqmpsv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.34y8attcintlv1jr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.356hd8fmlv6v6ld.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.378y0ed4632igdss.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.37de0myrdiygz8oh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.38jmr5e4898gblup.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.39x3cau42x40vmyv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3c26u6hj8c6bd1xf.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3cmugsiy2gjdt70k.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3ctu2rzf15xm90y9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3hd3aibjjc15153b.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3j4ahxoh6md0h8b0.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3k0nshbvtc1mgj2o.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3n4horsvmtpeujm7.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3s73ng5bxk9nxi7r.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3uyjv2jsa7c5bzcw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3vfktjsdrd4mid09.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3vp58t1ybea1cu9a.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3vx7fwfs74tlj8hm.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3xhi1rqi16ua2spp.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.3zoififgw4tw059w.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.41icjr5w3vzwnbm2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.41v7x1r518501euo.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.42el7qy49r4eddzo.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.42kvuw3p2lhk1054.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.44nzijsvyajzjoid.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.454ewqm2djsbml7b.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.45eg97gdpzz34o7p.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.45jgnp3ixashoqzl.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.48smi89okmfgv7hp.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.49ulroxczdgbsonw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4c09x9b59d8yooru.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4et59oebs1otih37.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4ihwqdcx9dhxs1je.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4prjkgedmr4ye52o.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4rncyxswso056qln.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4szvap6jd9dtovyi.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.4ui05jlsjb627166.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.50aormpyf6dvsddu.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.536nrto5quov8vcd.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.54n3avl8lj7m8dbr.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.55wvsh77ilyn1me9.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.57ayoo12vv5b9cwb.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.57gg8bzcse1iz9pv.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.581llj7wyrl5k54k.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.59k2s3jbmicec1g2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.5ag2xkfufj4470n1.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.5b82afocst4skzqh.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.5dhs2pd05cr8l229.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.5e1infsg180kl1j.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.5gp8zp5qet1guzq2.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.7j8v8ya0isxwgym.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.7lsudiitq6josty.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.ci7vweb5uh5j7ab.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.iltl3cijubi7dqd.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.iqtsi18i1tb2mdq.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.jd6obm9zumd9xvw.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.nzvibq8ufwe5k8t.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.qlhjkao9l7lkgpk.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.wx32es6k3telna5.rcgu.o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.ydic8acdfzspxqh.rcgu.o" "-o" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/cairo_threads-8c1392fd3ee89d8e.7d331wkln1jo4lu.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps" "-L" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out" "-L" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk_sys-c9e0d368fa31949c.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk_sys-28447d8a6ed82374.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_sys-a8d4a2957851bade.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango_sys-64778dff4e1b03b0.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf_sys-397e83ef71b97aa6.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio_sys-1a21eb43759ae03d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_executor-1908547745cb9d18.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_util-20faf1365e0186d3.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libmemchr-4d102d4f1b06df6a.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libproc_macro_nested-2371890767c12a11.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_io-c14e3cdd2821dbcd.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libslab-cf97c9649c4795dc.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpin_utils-13efb437786a044d.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_task-cd9d8b938bf8e858.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_channel-dd2b7c03a36dc082.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_sink-6bde5f1a0d4914c1.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures_core-9d1ccd4feda85275.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblazy_static-a489a9dd01075252.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libbitflags-ac95352956904bed.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo_sys-c01d574b8ed6199e.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib" "/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/liblibc-2f697bcb367999fc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-ce17fe05fa88fff7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-88250736fdfd488b.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-b4c23b5d831b61ea.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-52678edf67c3cbfc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace-aa90723925b767c3.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-1ad31f0e1f5330bc.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-572bf915a75bf178.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-709b6ef89ca6e6af.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-174360cf12ee1390.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-45e1eff5d23696f7.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-d67c1d4ca132d737.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-41d0f9161f0005e8.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-f090ec23084537ee.rlib" "/Users/vishaldpatel/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-7c4cbb62cd53c96a.rlib" "-framework" "AppKit" "-framework" "CoreFoundation" "-lgtk-3" "-lgdk-3" "-latk-1.0" "-lgdk-3" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lgio-2.0" "-lgobject-2.0" "-lcairo" "-lcairo-gobject" "-lgobject-2.0" "-lglib-2.0" "-lSystem" "-lresolv" "-lc" "-lm"
= note: ld: library not found for -lgtk-3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile gtk-rs-examples.

Caused by:
process didn't exit successfully: rustc --crate-name cairo_threads src/bin/cairo_threads.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=8c1392fd3ee89d8e -C extra-filename=-8c1392fd3ee89d8e --out-dir /Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps -C incremental=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/incremental -L dependency=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps --extern atk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libatk-f51f15811894006c.rlib --extern cairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libcairo-99368cbfc31a841a.rlib --extern chrono=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libchrono-a3d251cdde6ab73f.rlib --extern futures=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libfutures-368f43e80d88ef9f.rlib --extern gdk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk-c6920d9a47af383a.rlib --extern gdk_pixbuf=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgdk_pixbuf-72e25778261c7853.rlib --extern gio=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgio-e0ce6d6fd06a1dd5.rlib --extern glib=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib-5f4d9b9aeb91237b.rlib --extern glib_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libglib_sys-67e0e7ce31caf423.rlib --extern gobject_sys=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgobject_sys-fa0f301a5a2638b7.rlib --extern gtk=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libgtk-d7837d2da51a4fc2.rlib --extern once_cell=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libonce_cell-5a88f8ce0964a156.rlib --extern pango=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpango-6bf9bbfe2cff5ec3.rlib --extern pangocairo=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/deps/libpangocairo-eab6141eeb3c9431.rlib -L native=/Users/vishaldpatel/Learning/Rust/gtk_examples/target/debug/build/gtk-d357ade4a2496406/out (exit code: 1)
`

notepad.rs doesn't compile

$ cargo --version
cargo 0.16.0-nightly (6e0c18c 2017-01-27)
0 ✓ jonathan@cobalt ~/Documents/programming/gtk-rs/examples
$ rustc --version
rustc 1.15.0 (10893a9a3 2017-01-19)
0 ✓ jonathan@cobalt ~/Documents/programming/gtk-rs/examples
$ cargo build
   Compiling gtk-rs-examples v0.0.1 (file:///home/jonathan/Documents/programming/gtk-rs/examples)
error[E0277]: the trait bound `std::option::Option<&str>: std::convert::From<std::option::Option<&std::string::String>>` is not satisfied
  --> src/notebook.rs:69:21
   |
69 |         let label = gtk::Label::new(Some(&title));
   |                     ^^^^^^^^^^^^^^^ the trait `std::convert::From<std::option::Option<&std::string::String>>` is not implemented for `std::option::Option<&str>`
   |
   = help: the following implementations were found:
   = help:   <std::option::Option<T> as std::convert::From<T>>
   = note: required because of the requirements on the impl of `std::convert::Into<std::option::Option<&str>>` for `std::option::Option<&std::string::String>`
   = note: required by `gtk::Label::new`

error: aborting due to previous error

Build failed, waiting for other jobs to finish...
error: Could not compile `gtk-rs-examples`.

To learn more, run the command again with --verbose.
101 ✗ jonathan@cobalt ~/Documents/programming/gtk-rs/examples
$ 

I'm on Fedora 25, for x84-64. Is this example out of step with the gtk crate?

Example for GtkSwitcher usage

I'd really appreciate if it'd be an example with the GtKSwitcher including the connect_state_set method. Can someone add a file with this please?

Help Wanted

Hello, and sorry for my very basic question,
This would like to learn rust but wan't to try a exemple before learning it.
How can i make and Windows thats adding widgets to a list ?

I tried this:

use gtk::prelude::*;
use gio::prelude::*;

use gtk::{Application, ApplicationWindow, Button};

fn main() {
    let application = Application::new(
        Some("com.github.gtk-rs.examples.basic"),
        Default::default(),
    ).expect("failed to initialize GTK application");

    application.connect_activate(|app| {
        let window = ApplicationWindow::new(app);
        window.set_title("First GTK+ Program");
        window.set_default_size(500, 200);

        let button = Button::new_with_label("Click me!");
        let list_main = gtk::ListBox::new();
        let list = gtk::ListBox::new();
        let label = gtk::Label::new(Some("Test"));

        window.add(&list_main);
        window.add(&list);
        window.add(&button);
        window.add(&label);
        list_main.prepend(&list);
        list_main.prepend(&button);

        button.connect_clicked(move |_| {
            println!("Clicked!");
            let mut label_clone = gtk::Label::new(Some("tes"));
            &list.prepend(&label_clone);
            &list.prepend(&label);
        });
        window.show_all();
    });

    application.run(&[]);
}

But its creating empty lines, how can i debug this ? What am i doing wrong ? Everything ? ;)
Thanks for the help

undefined reference to `__onexitbegin'

Here is what I did:

git clone https://github.com/gtk-rs/examples

/c/Users/davidm/.cargo/config
[target.x86_64-pc-windows-gnu]
linker = "c:/dev/msys64/mingw64/bin/x86_64-w64-mingw32-gcc"

export LIBRARY_PATH=/c/dev/msys64/mingw64/lib
export GTK_LIB_DIR=/c/dev/msys64/mingw64/lib

cargo build --target=x86_64-pc-windows-gnu --features gtk_3_24 --release


davidm@IO-04 2019-05-06_16:30:06_EDT : ~/gtk-rs-examples
$ cargo clean
davidm@IO-04 2019-05-06_16:30:39_EDT : ~/gtk-rs-examples
$ cargo build --target=x86_64-pc-windows-gnu --features gtk_3_24 --release
   Compiling pkg-config v0.3.14
   Compiling libc v0.2.54
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling bitflags v1.0.5
   Compiling winapi v0.3.7
   Compiling lazy_static v1.3.0
   Compiling gio v0.6.0
   Compiling cairo-rs v0.6.0
   Compiling gdk-pixbuf v0.6.0
   Compiling pango v0.6.0
   Compiling num-traits v0.2.6
   Compiling fragile v0.3.0
   Compiling matches v0.1.8
   Compiling smallvec v0.6.9
   Compiling num-integer v0.1.39
   Compiling gdk v0.10.0
   Compiling atk v0.6.0
   Compiling gtk v0.6.0
   Compiling percent-encoding v1.0.1
   Compiling glib-sys v0.8.0
   Compiling gobject-sys v0.8.0
   Compiling gio-sys v0.8.0
   Compiling pango-sys v0.8.0
   Compiling cairo-sys-rs v0.8.0
   Compiling gdk-pixbuf-sys v0.8.0
   Compiling atk-sys v0.8.0
   Compiling gdk-sys v0.8.0
   Compiling gtk-sys v0.8.0
   Compiling unicode-bidi v0.3.4
   Compiling unicode-normalization v0.1.8
   Compiling time v0.1.42
   Compiling glib v0.7.1
   Compiling idna v0.1.5
   Compiling chrono v0.4.6
   Compiling url v1.7.2
   Compiling gtk-rs-examples v0.0.1 (C:\dev\msys64\home\davidm\gtk-rs-examples)
error: linking with `c:/dev/msys64/mingw64/bin/x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "c:/dev/msys64/mingw64/bin/x86_64-w64-mingw32-gcc" "-Wl,--enable-long-section-names" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\crt2.o" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.0.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.1.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.10.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.11.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.12.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.13.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.14.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.15.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.2.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.3.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.4.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.5.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.6.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.7.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.8.rcgu.o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.builder_basics.xlexygu8-cgu.9.rcgu.o" "-o" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.exe" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\builder_basics-f99b1a2f4eadc039.4y2qi5de9mbdohr7.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps" "-L" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\release\\deps" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:\\Users\\davidm\\.cargo\\registry\\src\\github.com-1ecc6299db9ec823\\winapi-x86_64-pc-windows-gnu-0.4.0\\lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:/dev/msys64/mingw64/lib" "-L" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgtk-10456b373785956a.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libatk-a0be342a127d617e.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgdk-96c2db91cb00c25a.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libpango-d096b16c7927d8b4.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libcairo-f185fc31af47080a.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgdk_pixbuf-d6c8927306c04b22.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgtk_sys-4bbaa3d8609cbe67.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libatk_sys-78c6c08af84b69d9.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgdk_sys-53c202792820ef5a.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libcairo_sys-d565b1c85ab00a24.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libwinapi-0a035944bdd45692.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libpango_sys-c4779fc853c62b19.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgdk_pixbuf_sys-3fd15114081c977d.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgio-a3d803dfa2bdba9d.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libfragile-42ffcc697bc61f09.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgio_sys-67713a30bc9d567f.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libglib-ae43751bd9591db5.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libgobject_sys-40129468105fc9da.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libglib_sys-fffa3ff4944f8583.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\liblibc-f882705e48705259.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\liblazy_static-928d9c6d5e86d9d1.rlib" "C:\\dev\\msys64\\home\\davidm\\gtk-rs-examples\\target\\x86_64-pc-windows-gnu\\release\\deps\\libbitflags-dcc8fe67853ba523.rlib" "-Wl,--start-group" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-a052c1876eb254e2.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-0337216aceeaadc7.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-88549af0e36f07bd.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-73d452efa30e4269.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-2112d5ef43063189.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-fb0ce1b2e0166c7e.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-a87f348cd55ea95d.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-7af3d9d24ba1599b.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c8ed22a25239855d.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-2141ca77f803b9cf.rlib" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-56cf6b71ae4313db.rlib" "-Wl,--end-group" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-9fcd49e0bc3a2977.rlib" "-Wl,-Bdynamic" "-lgtk-3" "-lgdk-3" "-latk-1.0" "-lgdk-3" "-lcairo" "-lcairo-gobject" "-lwinapi_advapi32" "-lwinapi_kernel32" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lgio-2.0" "-lgobject-2.0" "-lglib-2.0" "-lgobject-2.0" "-ladvapi32" "-lws2_32" "-luserenv" "-Wl,-Bstatic" "-lgcc_eh" "-lpthread" "-Wl,-Bdynamic" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-lmsvcrt" "-luser32" "-lkernel32" "C:\\Users\\davidm\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\davidm\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-gnu\lib\crt2.o:crtexe.c:(.rdata$.refptr.__onexitbegin[.refptr.__onexitbegin]+0x0): undefined reference to `__onexitbegin'
          C:\Users\davidm\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-gnu\lib\crt2.o:crtexe.c:(.rdata$.refptr.__onexitend[.refptr.__onexitend]+0x0): undefined reference to `__onexitend'
          collect2.exe: error: ld returned 1 exit status


error: aborting due to previous error

Missing documentation/examples for subclassing & few questions

I started to play with subclassing gtk-rs widgets. It took me a while, to understand few basic things. In my opinion we need more examples, or at least a more basic one with more explanations.

As a starter I had following questions:

  • Why we need a ExampleObjectPrivate and a ExampleObject struct
  • What does the glib_wrapper! macro
  • How I can access from the ExampleObject struct stuff from the ExampleObjectPrivate struct

Now I managed to subclass my first widget. It resulted into this:
https://gitlab.gnome.org/World/Shortwave/commit/4a4e2442f9c15f92b5a2ea32c5eb0d874496793f

Now I wonder...

I'm refering to this example:
https://github.com/gtk-rs/examples/blob/master/src/bin/basic_subclass.rs

And BTW, there's an issue with it:
grafik
Shouldn't be it SimpleWindow instead of the SimpleWindowPrivate in the inspector?

To be fair, I should admit that I have no knowledge with handling gobject boilerplate manually (Thanks Vala 😄 ), so I might missing few bits.

As soon as I understand everything correctly, I want to submit one more basic example for subclassing (like just subclassing a simple gtk::Box with more explanations)

button doesn't update animation when it is tapped with trackpad

Hi, I'm a beginner of gtk(-rs).

I modified basic.rs a little bit: add a click event to the button. The signal handler was triggered very well when I tapped (not clicked/pressed) the button with the trackpad of MacBook, BUT the animation of the button didn't update. If I didn't set the click event to the button, I might think Button can't be tapped in gtk.

[dependencies.gtk]
version = "0.5.0"
features = ["v3_10"]

How to set app menu bar on macOS?

There's a menu bar example, but it creates an in-window menu, which is inappropriate for macOS.

I've found that there's GtkApplicationExt::set_menubar that might be setting the native screen-top menu bar, but this method wants gio::MenuModel, and I can't find documentation how to create that object in Rust.

TreeView segfaults

I get Segmentation fault in my applications if they contain TreeViews, but only if they compiled under arm.
I don't know where I should report this and because I can reproduce the issue with the examples from this repo, I start here.

If I compile and run the simple_treeview example this output happens

root@bananapro:~/examples# cargo run --bin simple_treeview
    Finished dev [unoptimized + debuginfo] target(s) in 0.2 secs
     Running `target/debug/simple_treeview`

(.:8283): GLib-GObject-CRITICAL **: g_value_type_transformable: assertion 'G_TYPE_IS_VALUE (src_type)' failed
Segmentation fault (core dumped)

gdb is not very helpful ...

root@bananapro:~/examples# gdb target/debug/simple_treeview
GNU gdb (GDB) 7.12
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-poky-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from target/debug/simple_treeview...done.
warning: Unsupported auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/root/examples/target/debug/simple_treeview.
Use `info auto-load python-scripts [REGEXP]' to list them.
(gdb) run
Starting program: /home/root/examples/target/debug/simple_treeview
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".

(.:8268): GLib-GObject-CRITICAL **: g_value_type_transformable: assertion 'G_TYPE_IS_VALUE (src_type)' failed

Program received signal SIGSEGV, Segmentation fault.
0xb66cbb0c in g_type_name () from /usr/lib/libgobject-2.0.so.0
(gdb) bt
#0  0xb66cbb0c in g_type_name () from /usr/lib/libgobject-2.0.so.0
#1  0xb6bd8b14 in ?? () from /usr/lib/libgtk-3.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)

My rust version is latest nightly.

root@bananapro:~/examples# rustc -vV
rustc 1.16.0-nightly (24055d0f2 2017-01-31)
binary: rustc
commit-hash: 24055d0f2aa8dce5caed7544e6006aa48dceaea5
commit-date: 2017-01-31
host: armv7-unknown-linux-gnueabihf
release: 1.16.0-nightly
LLVM version: 3.9

gtk is compiled from source via yocto

gtk version: 3.22.7 (compiled from source)
root@bananapro:~/examples# cat /proc/cpuinfo |grep model
model name      : ARMv7 Processor rev 4 (v7l)
..
root@bananapro:~/examples# cat /proc/cpuinfo |grep Features
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
..

Please let me know if I can supply additional information. I've full access to the hardware and software stack.

Implement BuilderExt::add_callback_symbols() and BuilderExt::connect_signals()

These functions are needed to support using the callback function specified in the Handler field of a signal in Glade.

They are described here: https://developer.gnome.org/gtk3/stable/GtkBuilder.html#gtk-builder-add-callback-symbols
and here: https://developer.gnome.org/gtk3/stable/GtkBuilder.html#gtk-builder-connect-signals

And they are listed in gtk_sys here: https://github.com/gtk-rs/sys/blob/master/gtk-sys/src/lib.rs#L14874
and here: https://github.com/gtk-rs/sys/blob/master/gtk-sys/src/lib.rs#L14881

Is there something blocking the support of these two functions?

Gtk-rs create liststore for combobox model

I’m trying to write a simple GUI for setting up XML configurations and I’m looking for how to add a liststore model to populate the options of a combobox.

I’ve found the example in this project with a TreeStore as the model for the combobox but that doesn’t seem to be working exactly correctly although it does create the correct number of items in the drop down.

When I do a liststore version, the length of the dropdown changes but there are no items showing in it.

let model = ListStore::new(&[String::static_type()]);

    for i in 0..10 {
        // insert_with_values takes two slices: column indices and ToValue
        // trait objects. ToValue is implemented for strings, numeric types,
        // bool and Object descendants
        let iter = model.insert_with_values(None, &[0], &[&format!("Hello {}", i)]);

        for _ in 0..i {
            model.insert_with_values(Some(i), &[0], &[&"I'm a child node"]);
        }
    }

    let combo = ComboBox::new_with_model(&model);

I've seen examples using Glade as the source but I want to build it dynamically.

How to display TreeView backed by a Vec of Rust objects

Examples show how to bind a ListStore or TreeStore to a TreeView, but it seems like this relies on the store being the source of truth for this data, and the data to be stored as separate Values in separate columns.

What I'm missing is how to use Rust-native type as the data source for a TreeView, especially if the TreeView is sortable.

My data lives in a Vec<RustStruct>, and I'd like to display some of the fields of that struct in TreeView's columns.

I can't find a way reliably connect the Vec to the ListStore or use it as the data source for the TreeView. My naive approach of mapping vec[n] to n-th row of the ListStore worked only for non-sortable view, but as soon as the view is sorted, Vec indices don't correspond to ListStore rows any more, so I can't update them (without searching the whole list store for a matching row).

I've tried wrapping my RustStruct to be a GObject subclass:

    let store = ListStore::new(&[RustStructGObjectWrapper::static_type()]);
    tree.set_model(Some(&store)); 

    // creates 3 columns here

but it seems like ListStore wants 1:1 mapping between number of columns in the ListStore:

'assertion failed: columns.len() <= n_columns as usize'

I hoped that TreeViewColumnExt::set_cell_data_func would let me have one object per row, and copy its properties into separate columns of the TreeView, but apparently that's not the way to do it.


So it would be helpful for me to see an example of how to go from struct Model {column1:RefCell<String>, column2:RefCell<String>}; Vec<Model> to a sortable TreeView that displays model's fields, and can update them in the UI when they change.

gtktest consumes ~75% of cpu on OS X

Reproduction:
Build examples using cargo build --release --features gtk_3_10 on OS X El Capitan.

Observed:
~75% cpu usage (and 45M resident memory use) as seen through top -o cpu

Expected:
As an example, gtktest should consume almost no resources as it is not doing anything afaict.

Add an example with mutable state

I'm not sure how to go about adding mutable shared state. I feel like this is a very common thing to want in a UI app, but I can't find it in the examples. I'm suspicious the solution involves Rc<RefCell<T>>, but am not sure how to do it. Eg:

let state = Rc::new(RefCell::new(state));  // Interior mutability to solve this?

let btn1 = Button::new_with_label("1");
btn1.connect_clicked(|_| {
    state.borrow_mut().value1 = true;
 });

let btn2 = Button::new_with_label("2");
btn2.connect_clicked(|_| {
    state.borrow_mut().value2 = true;
});

connect_activate with mutable variables

Using a mutable variable in a connect_activate closure gives an error: cannot borrow captured outer variable in an `Fn` closure as mutable

Example code:

let item = MenuItem::new_with_label("Add one");

struct Variable {
    pub value: u32
}

let mut x = Variable {
    value: 0
};

impl Variable {
    pub fn add(&mut self, x: u32) {
        self.value += x;
    }
}

item.connect_activate(move |_| {
    x.add(10);
});

basic

cargo run --bin basic
warning: unused manifest key: bin.required-features
warning: unused manifest key: bin.edition
warning: unused manifest key: bin.required-features
warning: unused manifest key: bin.required-features
warning: unused manifest key: bin.required-features
warning: unused manifest key: bin.required-features
warning: unused manifest key: package.autobins
Updating registry https://github.com/rust-lang/crates.io-index
error: An unknown error occurred

Caused by:
Feature compat includes futures01 which is neither a dependency nor another feature

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


on armv6l

Clone_macros doesn't work

I've tried to use this macro (even the example) but it doesn't work. There is no error during compile time, but it does nothing on button click (the example doesn't even open). Does anyone have any idea?

gtk-rs examples in a flatpak

I spend a couple of days figuring out how to these examples distributed via a flatpak. It is working. I'll probably record another screencast and put it up on YouTube. Here are some quick notes.

Install Flatpak if not installed. On Fedora, this is:

sudo dnf install flatpak

Install the gtk-rs-examples:

sudo flatpak install https://s3.amazonaws.com/ctaggart/flatpak/gtk-rs-examples.flatpakref

See what is installed and run it:

flatpak list
flatpak run org.gtkrs.GtkTest

try the other examples:

flatpak run --command=sh org.gtkrs.GtkTest
cd /app/bin

gtktest "wrapping SpinButton" has glitchy behavior when holding buttons, or using keyboard arrows

gtktest has a "wrapping SpinButton". I'm testing on gtk-rs on Windows 10 with gtk via msvc vcpkg.

When I decrease the wrapping SpinButton past the end using keyboard below 10, it gets stuck at 90 until I increase the value to 10 or switch widgets. Above 90, it gets stuck at 10 until I decrease the value to 90 or switch widgets.

If I hold down the +- buttons, I can get the value past the 10..90 range, to 0 or 100.

I'm not familiar with gtk, but is binding the wrapping behavior to connect_input wrong? Should it be bound to connect_value_changed instead?

examples don't build; perhaps out of sync with crates.io versions?

examples don't build; perhaps out of sync with crates.io versions?

I checked out the examples repository locally, assuming that I would be able to just run cargo build and go from there.

However, there are some clear API mismatches that break the build of the examples; it seems like they may have been recently updated to use versions of the rust gtk bindings that do not return Result anymore?

% git log -1
commit 75d11d8c6c6881c131dfbee803e670fcd28b8c35
Merge: 8958480 a88d4fa
Author: Guillaume Gomez <[email protected]>
Date:   Sun Jul 5 00:40:44 2015 +0200

    Merge pull request #22 from simias/master

    Use correct name for "set_homogeneous" following upstream change
% cargo build
src/basic.rs:13:17: 13:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/basic.rs:13     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/cairotest.rs:15:17: 15:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/cairotest.rs:15     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
error: aborting due to previous error
src/gtktest.rs:53:17: 53:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/gtktest.rs:53     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/notebook.rs:54:17: 54:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/notebook.rs:54     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
error: aborting due to previous error
src/sync_widgets.rs:11:17: 11:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/sync_widgets.rs:11     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/text_viewer.rs:15:17: 15:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/text_viewer.rs:15     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/sync_widgets.rs:24:10: 24:31 error: type `gtk::widgets::_box::Box` does not implement any method in scope named `set_homogeneous`
src/sync_widgets.rs:24     hbox.set_homogeneous(true);
                                ^~~~~~~~~~~~~~~~~~~~~
error: aborting due to 2 previous errors
error: aborting due to previous error
   Compiling rgtk-examples v0.0.1 (file:///home/pnkfelix/Dev/Rust/examples)
Build failed, waiting for other jobs to finish...
src/treeview.rs:21:17: 21:72 error: type `()` does not implement any method in scope named `unwrap_or_else`
src/treeview.rs:21     gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK."));
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
Could not compile `rgtk-examples`.

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

Add an Example of Creating a Custom Widget

I would love to see an example of writing a custom widget, for example: A new widget that derives from DrawingArea and implements Scrollable. Information on how to do this seems to be disjointed and hard to find.

Glade

As discussed with @gkoz, I'll rewrite all examples using Glade and we'll move current examples to a test repository.

error: Could not compile `gdk`.

Getting this error while running cargo build on ubuntu 16.10. I have installed libgtk-3-dev.

       Fresh bitflags v0.5.0
       Fresh bitflags v0.4.0
       Fresh libc v0.2.21
       Fresh c_vec v1.2.0
       Fresh pkg-config v0.3.9
       Fresh cairo-sys-rs v0.3.3
       Fresh glib-sys v0.3.3
       Fresh gobject-sys v0.3.3
       Fresh gio-sys v0.3.3
       Fresh pango-sys v0.3.3
       Fresh glib v0.1.2
       Fresh gdk-pixbuf-sys v0.3.3
       Fresh gio v0.1.2
       Fresh cairo-rs v0.1.2
       Fresh gdk-sys v0.3.3
       Fresh pango v0.1.2
       Fresh gdk-pixbuf v0.1.2
       Fresh atk-sys v0.3.3
   Compiling gdk v0.5.2
     Running `rustc /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs --crate-name gdk --crate-type lib -g -C metadata=f1dec5a62824c72c -C extra-filename=-f1dec5a62824c72c --out-dir /home/user/Documents/examples/target/debug/deps --emit=dep-info,link -L dependency=/home/user/Documents/examples/target/debug/deps -L dependency=/home/user/Documents/examples/target/debug/deps --extern gio=/home/user/Documents/examples/target/debug/deps/libgio-3d16d57eb9386ee3.rlib --extern bitflags=/home/user/Documents/examples/target/debug/deps/libbitflags-1efefdc447eb53f2.rlib --extern glib=/home/user/Documents/examples/target/debug/deps/libglib-c6b7d2e1d6c140d8.rlib --extern libc=/home/user/Documents/examples/target/debug/deps/liblibc-1d4b292c3e055073.rlib --extern gdk_sys=/home/user/Documents/examples/target/debug/deps/libgdk_sys-0f3c74780ae170e7.rlib --extern glib_sys=/home/user/Documents/examples/target/debug/deps/libglib_sys-520dab820e7b21a9.rlib --extern gdk_pixbuf=/home/user/Documents/examples/target/debug/deps/libgdk_pixbuf-c832c3addf1cae1a.rlib --extern cairo=/home/user/Documents/examples/target/debug/deps/libcairo-e8fd2bb1f2342189.rlib --extern pango=/home/user/Documents/examples/target/debug/deps/libpango-fac5d3d75caf77c7.rlib --cap-lints allow -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu`
       Fresh gtk-sys v0.3.3
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:151:9: 151:43 error: a type named `WindowHints` has already been imported in this module [E0252]
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:151 pub use ffi::GdkWindowHints as WindowHints;
                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24:9: 24:17 note: previous import of `WindowHints` here
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24 pub use auto::*;
                                                                                           ^~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:151:9: 151:43 help: run `rustc --explain E0252` to see a detailed explanation
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:134:9: 134:41 error: a type named `DragAction` has already been imported in this module [E0252]
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:134 pub use ffi::GdkDragAction as DragAction;
                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24:9: 24:17 note: previous import of `DragAction` here
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24 pub use auto::*;
                                                                                           ^~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:134:9: 134:41 help: run `rustc --explain E0252` to see a detailed explanation
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:136:9: 136:39 error: a type named `EventMask` has already been imported in this module [E0252]
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:136 pub use ffi::GdkEventMask as EventMask;
                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24:9: 24:17 note: previous import of `EventMask` here
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:24 pub use auto::*;
                                                                                           ^~~~~~~~
/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs:136:9: 136:39 help: run `rustc --explain E0252` to see a detailed explanation
error: aborting due to 3 previous errors
error: Could not compile `gdk`.

Caused by:
  Process didn't exit successfully: `rustc /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-0.5.2/src/lib.rs --crate-name gdk --crate-type lib -g -C metadata=f1dec5a62824c72c -C extra-filename=-f1dec5a62824c72c --out-dir /home/user/Documents/examples/target/debug/deps --emit=dep-info,link -L dependency=/home/user/Documents/examples/target/debug/deps -L dependency=/home/user/Documents/examples/target/debug/deps --extern gio=/home/user/Documents/examples/target/debug/deps/libgio-3d16d57eb9386ee3.rlib --extern bitflags=/home/user/Documents/examples/target/debug/deps/libbitflags-1efefdc447eb53f2.rlib --extern glib=/home/user/Documents/examples/target/debug/deps/libglib-c6b7d2e1d6c140d8.rlib --extern libc=/home/user/Documents/examples/target/debug/deps/liblibc-1d4b292c3e055073.rlib --extern gdk_sys=/home/user/Documents/examples/target/debug/deps/libgdk_sys-0f3c74780ae170e7.rlib --extern glib_sys=/home/user/Documents/examples/target/debug/deps/libglib_sys-520dab820e7b21a9.rlib --extern gdk_pixbuf=/home/user/Documents/examples/target/debug/deps/libgdk_pixbuf-c832c3addf1cae1a.rlib --extern cairo=/home/user/Documents/examples/target/debug/deps/libcairo-e8fd2bb1f2342189.rlib --extern pango=/home/user/Documents/examples/target/debug/deps/libpango-fac5d3d75caf77c7.rlib --cap-lints allow -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu` (exit code: 101)


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.