kenz-gelsoft / wxRust2

re-exploration Rust binding to wx
MIT License
78 stars 10 forks source link

Consider using a "vendored" wxWidgets dependency #72

Closed ancwrd1 closed 2 years ago

ancwrd1 commented 2 years ago

First of all very nice project, thanks!

I have a suggestion on simplifying the external dependency on wxWidgets installation by having pre-built crates for popular architectures and platforms, as an optional feature dependency.

This will give an advantage of much easier CI/CD setup and cross-platform builds. For those who need a system-specific library the wx-config can still be used.

We are currently using this in our Rust project where wxWidgets is integrated via a custom C++ bridge and a few external crates which include wxWidgets binaries, examples:

https://github.com/ancwrd1/wx-universal-apple-darwin (macOS Intel + M1) https://github.com/ancwrd1/wx-x86_64-pc-windows-gnu (Windows GNU toolchain)

Those binary crates can then be used via links and DEP_xxx cargo features in the build.rs:

use std::{env, error};

type BuildResult<T> = Result<T, Box<dyn error::Error>>;

fn dep_links() -> BuildResult<String> {
    let target = env::var("TARGET")?.replace('-', "_").to_uppercase();
    if target.contains("APPLE") {
        Ok("UNIVERSAL_APPLE_DARWIN".to_owned())
    } else {
        Ok(target)
    }
}
fn get_wx_cflags() -> BuildResult<Vec<String>> {
    Ok(env::var(format!("DEP_WX_{}_CFLAGS", dep_links()?))?
        .split_whitespace()
        .map(ToOwned::to_owned)
        .collect())
}

fn main() -> BuildResult<()> {
    let (link_flags, build_flags): (Vec<_>, Vec<_>) = get_wx_cflags()?
        .into_iter()
        .partition(|f| f.starts_with("-l") || f.starts_with("-L"));

    let mut build = cc::Build::new();

    let target = env::var("TARGET")?;

    build_flags
        .iter()
        .fold(&mut build, |build, f| build.flag(f))
        .flag("-DNDEBUG")
        .flag("-std=c++14")
        .cpp(true)
        .files(&[
            "cxx/app.cpp",
        ]);

    build.compile("libwxgui-cxx.a");

    for f in link_flags {
        println!("cargo:rustc-flags={}", f);
    }

    Ok(())
}
kenz-gelsoft commented 2 years ago

Thank you for your feedback.

It's nice to have the statically linked final binary for especially Windows or Mac platform.

I'll consider this before the first release of this project!

kenz-gelsoft commented 2 years ago

For my reference:

kenz-gelsoft commented 2 years ago

Honestly, when I read this first time I didn't catch the point as I have not familiar with the cargo enough.

Now I got what you suggested.

Your crates and sample code helps me a lot. Thanks.

I'm thinking it shouldn't be the default to use prebuilt crate since crate users hard to verify if the binary blob is safe.

But supporting to use custom "vendored" binary with cargo feature alternatively is good idea and is streamlined with how cargo handles *-sys crates.

kenz-gelsoft commented 2 years ago

@ancwrd1 Can I use your crates as is to try this feature?

Environment variable names your crates provide looks reasonable, so I plan to just follow it.

ancwrd1 commented 2 years ago

Sure you can use them, no prob. Some of the less used features of wxWidgets (MDI, printing, etc) are not compiled in though, see build-wx.sh script for details on which features are enabled.

So basically this comes to the usage ergonomics. Compiling the entire wxWidgets from sources together with your app is not practical as it's a huge library. So we can have two options: use the pre-built static library (+ headers) from the platform-specific crates like I suggest or use wx-config (or env variable) to discover the globally installed library. The former is easier for CI/CD workflows and cross-platform development from a single host. The latter is probably more secure as it avoids possible supply chain attacks.

kenz-gelsoft commented 2 years ago

In this WIP PR: https://github.com/kenz-gelsoft/wxRust2/pull/90/,

I'm trying your wx-universal-apple-darwin crate but I get following linking error.

Is not supported linking your binary into intermediate library crate (wx-base, wx-core) rather than final executables(hello, minimal, wrapsizer, widgets which generate following errors)?

or some toolchain mismatch? (I'm using Xcode 13.4.1 release)

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.14hhzt85i5s2y38c.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.1oexc1ws45d67enb.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.1tk4ac1as86kkcdm.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.27o4h04ot600rxu9.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.2exj09lcce5ghybm.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.2gz5jbvbe6c0owpp.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.2nnb9g9izdwemyan.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.2va594gvvcijewsj.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.2zjmkn8819u50nan.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.33s8x6n5qt7w6nl.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.393u586tof16ij0n.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3c15lfee24flo9hl.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3c29l5fcyddy3r0a.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3f2k35luqr3vszfu.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3jbqxmdpxkbtem8a.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3nxalvnfih3ze7di.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.3rm5j5od0d9zuhse.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.41npc78zikevdn50.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.484qvmd76oumjjyx.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.490lbjv5hr652bnc.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.4k7vnfmvb4tpeq3r.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.4uyyu2otzj11g2ez.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.4vx1y0bcec9zxfej.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.e282qe8qaep709o.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.j8uxunn02biadp9.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.llt2ohnqmsph2ft.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d.5923xopjjutocqxs.rcgu.o" "-L" "/Users/kenz/src/wxRust2/target/debug/deps" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-1350c3d9d03e8d0f/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-base-d6f4772d066bb45b/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx-c4adbe70674cdf3c.rlib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx_base-724f4e7606335f30.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd-65593617647a200e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libpanic_unwind-8d961ef8c4f63984.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libobject-899dcf63b86be225.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libmemchr-ac8c24923a4ceb78.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libaddr2line-4c2771a15fb6f37e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libgimli-4e9627c2a071def0.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_demangle-7939dcc7209ec7df.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd_detect-ff2bce2657742dae.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libhashbrown-5d05867f34d20949.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libminiz_oxide-0c954423be007412.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libadler-02b3d63b95c699db.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_alloc-1598edcd5bca28f3.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libunwind-96d716517eaa7162.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcfg_if-0dd17ccd4131f308.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liblibc-53fbf10f6e15a5b4.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liballoc-852ad786540c5430.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_core-95a7e52c78a3fba1.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcore-dd6de681850a671c.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-68b99a601d9fe98d.rlib" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/kenz/src/wxRust2/target/debug/deps/hello-0a38db47d8623f0d" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: Undefined symbols for architecture arm64:
            "___isPlatformVersionAtLeast", referenced from:
                wxMenuItem::AddExtraAccel(wxAcceleratorEntry const&) in libwx_osx_cocoau-3.1-Darwin.a(menuitem_osx.cpp.o)
                wxFrame::OnCreateStatusBar(int, long, int, wxString const&) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::SetStatusBar(wxStatusBar*) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::PositionStatusBar() in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::DoGetClientSize(int*, int*) const in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxToolBar::OnPaint(wxPaintEvent&) in libwx_osx_cocoau-3.1-Darwin.a(toolbar.mm.o)
                wxCGColorRefData::wxCGColorRefData(CGColor*) in libwx_osx_cocoau-3.1-Darwin.a(colour.cpp.o)
                ...
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.10enou94duioxkkq.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.1bxj9ma4ynix4dgy.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.1fndrq16slm815vo.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.1p1rntgorz3hhd3h.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.2ev8fci8nh2tjwr3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.2qyrrhy49oohstbe.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.2te49sg024z6kn7o.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.2ujxi6v8fc0eqo87.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.2w6oq5socd8sk1z8.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.355meyef71pig8sd.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.3a89gwqbin5fxrao.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.3hpvivur06a0z62g.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.3lcbvisa0syz3ux8.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.3nm98g4a05tu8f5v.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.41jnznzdht94k482.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.436hzhhsm0ze4j6q.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.441gdh6tb3dlcfev.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.4ekibdonc2ilqqfs.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.4f4edxp68ftf9b24.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.4o5xpq4c57k0oauj.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.4xrfu07t7a9nvle3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.4yx30ackcpq2cw25.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.57vp51wck5ed6cfd.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.5gtpo82sct65jqmx.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.b0ykrpkrguxsxll.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.qm8ksh6thbk66rd.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.s8njiqf301z2k7p.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.s9i6jzo9bh1cg7f.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd.t6jqg8rt2rr3326.rcgu.o" "-L" "/Users/kenz/src/wxRust2/target/debug/deps" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-1350c3d9d03e8d0f/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-base-d6f4772d066bb45b/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx-c4adbe70674cdf3c.rlib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx_base-724f4e7606335f30.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd-65593617647a200e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libpanic_unwind-8d961ef8c4f63984.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libobject-899dcf63b86be225.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libmemchr-ac8c24923a4ceb78.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libaddr2line-4c2771a15fb6f37e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libgimli-4e9627c2a071def0.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_demangle-7939dcc7209ec7df.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd_detect-ff2bce2657742dae.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libhashbrown-5d05867f34d20949.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libminiz_oxide-0c954423be007412.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libadler-02b3d63b95c699db.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_alloc-1598edcd5bca28f3.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libunwind-96d716517eaa7162.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcfg_if-0dd17ccd4131f308.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liblibc-53fbf10f6e15a5b4.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liballoc-852ad786540c5430.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_core-95a7e52c78a3fba1.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcore-dd6de681850a671c.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-68b99a601d9fe98d.rlib" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/kenz/src/wxRust2/target/debug/deps/minimal-3043f55fab7cfdbd" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: Undefined symbols for architecture arm64:
            "___isPlatformVersionAtLeast", referenced from:
                wxMenuItem::AddExtraAccel(wxAcceleratorEntry const&) in libwx_osx_cocoau-3.1-Darwin.a(menuitem_osx.cpp.o)
                wxFrame::OnCreateStatusBar(int, long, int, wxString const&) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::SetStatusBar(wxStatusBar*) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::PositionStatusBar() in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::DoGetClientSize(int*, int*) const in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxToolBar::OnPaint(wxPaintEvent&) in libwx_osx_cocoau-3.1-Darwin.a(toolbar.mm.o)
                wxCGColorRefData::wxCGColorRefData(CGColor*) in libwx_osx_cocoau-3.1-Darwin.a(colour.cpp.o)
                ...
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: could not compile `hello` due to previous error
warning: build failed, waiting for other jobs to finish...
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.13ckod0k8llq0a2.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.16p8imyv93mjew5r.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.1jxz13eyriuytw1n.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.1mm7e76bj41bjua0.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.1togmm8bne0xb0om.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.1ttxqk0e59cgpnhi.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.226m4k3a4pzojl1u.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2fhl1kyj4rghdgyq.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2lk0oihxd1wrniop.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2ri35c7i85fyxipr.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2td71bqmk3kv9q1t.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2z76buat72jcwxrh.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.2zzj9c0n5tkngysy.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.39wrpec2xcebzse7.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.3p0eoik217gs5lro.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.3w5q8px5p93jqcka.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.3z30ru6thzwz3iuq.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.3zsawv8465eb0v4b.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.41pre7rq5vgp8ezt.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.4bqac1zb0w3qde7e.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.4dx2qph712n1tf4t.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.4fxiq8dske27ydm3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.4l2rqk1q1kh010v1.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.4n4zqbvsy5pbwo64.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.51c89m74i0x31n2b.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.9egteoigdrd20bb.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.fsgslw0cgix2d38.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.gn4q7k4ph0oys06.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.hc5l1w1mfh4ik0g.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.hwnimrodvci01l3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.i014qpfkyyw08v9.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.mgf4aa1kyhwlubb.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.pt2g1b8s8xtz0rj.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093.30tzi2vqpi09nexz.rcgu.o" "-L" "/Users/kenz/src/wxRust2/target/debug/deps" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-1350c3d9d03e8d0f/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-base-d6f4772d066bb45b/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx-c4adbe70674cdf3c.rlib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx_base-724f4e7606335f30.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd-65593617647a200e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libpanic_unwind-8d961ef8c4f63984.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libobject-899dcf63b86be225.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libmemchr-ac8c24923a4ceb78.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libaddr2line-4c2771a15fb6f37e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libgimli-4e9627c2a071def0.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_demangle-7939dcc7209ec7df.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd_detect-ff2bce2657742dae.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libhashbrown-5d05867f34d20949.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libminiz_oxide-0c954423be007412.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libadler-02b3d63b95c699db.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_alloc-1598edcd5bca28f3.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libunwind-96d716517eaa7162.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcfg_if-0dd17ccd4131f308.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liblibc-53fbf10f6e15a5b4.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liballoc-852ad786540c5430.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_core-95a7e52c78a3fba1.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcore-dd6de681850a671c.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-68b99a601d9fe98d.rlib" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/kenz/src/wxRust2/target/debug/deps/wrapsizer-961918af07d10093" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: Undefined symbols for architecture arm64:
            "___isPlatformVersionAtLeast", referenced from:
                wxMenuItem::AddExtraAccel(wxAcceleratorEntry const&) in libwx_osx_cocoau-3.1-Darwin.a(menuitem_osx.cpp.o)
                wxFrame::OnCreateStatusBar(int, long, int, wxString const&) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::SetStatusBar(wxStatusBar*) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::PositionStatusBar() in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::DoGetClientSize(int*, int*) const in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxToolBar::OnPaint(wxPaintEvent&) in libwx_osx_cocoau-3.1-Darwin.a(toolbar.mm.o)
                wxCGColorRefData::wxCGColorRefData(CGColor*) in libwx_osx_cocoau-3.1-Darwin.a(colour.cpp.o)
                ...
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

warning: `wrapsizer` (bin "wrapsizer") generated 1 warning
error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.113jsp4dtvhmspy9.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.11a558m1t3ciz40m.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.14ji4fd90djkaxb7.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.15kjii39tluwphhf.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1bxwtad9smw4e7y3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1i5d66xx4vf8yfk1.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1ihpuvfwicwvrcno.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1khm82s3hfa95kzt.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1wx58kvyk2p1iujr.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.20mqb4vhvzwtl6ii.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.247zj6ggv748mtm8.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.249shgl88xk4t2xi.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2693vt0hmqadkpu1.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.26lz5pcy9l2tjtyl.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2awr07tbbrgyl475.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2ifwcdfhn2ouc9nt.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2it4v71xyao27mnt.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2jcqfs3i6nmc715t.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2k7zzvbgnyssfyh4.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2mfvh7n0g4l2qsch.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2qcjo1soyr61atr.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2qndmj282fb1azki.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2t16u8g4n534fr9x.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2tulmx2ncsk057k6.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2xedufeo3g6d44xu.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.2zxcyagczvlqvm7a.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.31nwg1a33dxpwygk.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.31xld9ntndrqzrpa.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.32z5w75lq8n5v751.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.37ac4e3bcog31tvi.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.39606nmh36lbqtg8.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3ajbys9ju8948jj3.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3hcdxkzg36ckysbp.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3kbtsat7jcl1hd4m.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3lw5552cspqfl0fw.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3lxn3tv7kweoxf3c.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3nc8zrd7ocqrsf09.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3udqlp18krlg8yq4.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.3ylrrkp7k2y9n5sj.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.402450yjna32s1f0.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.457vpwijevddut6r.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.45fj8wfilug5nrrd.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.47zx86fe13re0jjl.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4de7ih8f4litg53z.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4edorct1gti093xn.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4eehden8ev7yq8w2.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4idet9dgdqv3sfi0.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4j17889usqh6iqji.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4n4pej9z2xjjh71f.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4o8dg03s5s415d50.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4zrl41nz7zv2wdqs.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.4zt5cs22u6krl807.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.546hih75eajv29gy.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.5e29czbyk9e6nm39.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.5fcvz1in9bdc1mtn.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.5g8m4i7r79hlzgzp.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.ckgv2byjt918mu7.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.goccsjpgzpl9k1c.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.jgus2bxinkqzw7b.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.nobcgnoiq4m44w8.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.pmu5q6lum0o9vd2.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.qdgm4pesa4w2wkv.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.rycwkc2xuzlv4ic.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.sudno0yd0s1zvq5.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.zrwvkodn5o6wkuf.rcgu.o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715.1iv81kmbh0xx8dws.rcgu.o" "-L" "/Users/kenz/src/wxRust2/target/debug/deps" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-1350c3d9d03e8d0f/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/src/wxRust2/target/debug/build/wx-base-d6f4772d066bb45b/out" "-L" "/Users/kenz/.cargo/git/checkouts/wx-universal-apple-darwin-7dfacd7bd95f8753/4e512d2/lib" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx-c4adbe70674cdf3c.rlib" "/Users/kenz/src/wxRust2/target/debug/deps/libwx_base-724f4e7606335f30.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd-65593617647a200e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libpanic_unwind-8d961ef8c4f63984.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libobject-899dcf63b86be225.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libmemchr-ac8c24923a4ceb78.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libaddr2line-4c2771a15fb6f37e.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libgimli-4e9627c2a071def0.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_demangle-7939dcc7209ec7df.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libstd_detect-ff2bce2657742dae.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libhashbrown-5d05867f34d20949.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libminiz_oxide-0c954423be007412.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libadler-02b3d63b95c699db.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_alloc-1598edcd5bca28f3.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libunwind-96d716517eaa7162.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcfg_if-0dd17ccd4131f308.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liblibc-53fbf10f6e15a5b4.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/liballoc-852ad786540c5430.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/librustc_std_workspace_core-95a7e52c78a3fba1.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcore-dd6de681850a671c.rlib" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-68b99a601d9fe98d.rlib" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lc++" "-lwx_osx_cocoau-3.1-Darwin" "-lz" "-lwxregexu-3.1" "-liconv" "-lwxjpeg-3.1" "-lwxpng-3.1" "-lwxtiff-3.1" "-lexpat" "-framework" "CoreFoundation" "-framework" "Carbon" "-framework" "Cocoa" "-framework" "QuartzCore" "-framework" "WebKit" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/kenz/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/kenz/src/wxRust2/target/debug/deps/widgets-2f238429217c4715" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: Undefined symbols for architecture arm64:
            "___isPlatformVersionAtLeast", referenced from:
                wxMenuItem::AddExtraAccel(wxAcceleratorEntry const&) in libwx_osx_cocoau-3.1-Darwin.a(menuitem_osx.cpp.o)
                wxFrame::OnCreateStatusBar(int, long, int, wxString const&) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::SetStatusBar(wxStatusBar*) in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::PositionStatusBar() in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxFrame::DoGetClientSize(int*, int*) const in libwx_osx_cocoau-3.1-Darwin.a(frame.cpp.o)
                wxToolBar::OnPaint(wxPaintEvent&) in libwx_osx_cocoau-3.1-Darwin.a(toolbar.mm.o)
                wxCGColorRefData::wxCGColorRefData(CGColor*) in libwx_osx_cocoau-3.1-Darwin.a(colour.cpp.o)
                ...
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

warning: `widgets` (bin "widgets") generated 19 warnings
error: build failed
kenz-gelsoft commented 2 years ago

Some googling tells me this is related with @available() usage, but it should be in the upstream (wxWidgets) and couldn't avoid that.

kenz-gelsoft commented 2 years ago

I'll try following later.

ancwrd1 commented 2 years ago

Try building with RUSTFLAGS="-C link-arg=-fapple-link-rtlib"

kenz-gelsoft commented 2 years ago

@ancwrd1 Thanks. Specifying RUSTFLAGS="-C link-arg=-fapple-link-rtlib" worked.

kenz-gelsoft commented 2 years ago

I'm struggling to set up mingw toolchain these days. Since I have not used it before.

I tried to configure the git-for-windows + pacman but not succeeded. At last start using msys2 but it is complicated a bit..l

ancwrd1 commented 2 years ago

I think you can just get the one from winlibs.com, unpack it somewhere and set the PATH var accordingly.

ancwrd1 commented 2 years ago

I guess the -msvc binaries can be built as well but I don't have a lot of experience with Visual Studio tools.

kenz-gelsoft commented 2 years ago

Thank you for your advice.

Installed mingw-w64-x86_64-gcc as follow in MSYS2 MinGW x64 shell:

$ pacman -Q | grep mingw-w64
mingw-w64-x86_64-binutils 2.38-3
mingw-w64-x86_64-crt-git 10.0.0.r32.g89bacd2be-1
mingw-w64-x86_64-gcc 12.1.0-2
mingw-w64-x86_64-gcc-libs 12.1.0-2
mingw-w64-x86_64-gmp 6.2.1-3
mingw-w64-x86_64-headers-git 10.0.0.r32.g89bacd2be-1
mingw-w64-x86_64-isl 0.24-1
mingw-w64-x86_64-libiconv 1.17-1
mingw-w64-x86_64-libwinpthread-git 10.0.0.r32.g89bacd2be-1
mingw-w64-x86_64-mpc 1.2.1-1
mingw-w64-x86_64-mpfr 4.1.0.p13-1
mingw-w64-x86_64-windows-default-manifest 6.4-4
mingw-w64-x86_64-winpthreads-git 10.0.0.r32.g89bacd2be-1
mingw-w64-x86_64-zlib 1.2.12-1
mingw-w64-x86_64-zstd 1.5.2-2

I appended PATH to msys2\mingw64\bin and cargo build --target x86_64-pc-windows-gnu, I got a step forward it looks to compile with mingw64 gcc, but link failed as it cannot find ld:

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.120tkqwy5gpf2upi.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.166t0ww5y7saljls.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.1cqxx3gkpizuw0ya.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.1s9hdv3gpysrt3fv.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.1xlsyyaq9cn2bfb6.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.1yglx4n6kbnawt5g.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.1yi88rhh79w5dno3.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.27i96utmg02gl29f.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.295csiwwmnhja3jt.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.29f1dwylsuubhf9k.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.2sxib6e3b7xnee89.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.39docq5v5bm5fuf6.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3gwdy12jsqhdlge1.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3h8camrvvfqldm6j.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3ia6iw2qzjqtr6vd.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3j6rs2fq6kk3oo2j.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3qsxgr12e859o720.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.49xhayovfydzq9ze.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4dkte6twnh64sanv.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4hccnhkf9jgbe2du.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4mpe0zj8jzwy5s4r.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4q80n5c0j4bmsxvo.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4rng0k6qeaky5h3b.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.4vuxxptohc3jrw9t.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.57jyhea0l4yiz5r7.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.5bmrd8dymbplomia.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.7it2suv9xgbnyi7.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.gpmaimbnl4g554t.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.ogiyapd29rnatw9.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.vmb4n8vadnh9xh1.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.yvstyoeqii5wavk.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.z61vbajp60ayz8u.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.3fg90ytabpzibren.rcgu.o" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\build\\wx-7553bd6086340eef\\out" "-L" "C:\\Users\\KENZ\\.cargo\\git\\checkouts\\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\\b41af99/lib" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\build\\wx-base-26e77e13a2c1dd13\\out" "-L" "C:\\Users\\KENZ\\.cargo\\git\\checkouts\\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\\b41af99/lib" "-L" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\libwx-335b530729d43dc4.rlib" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\libwx_base-923f957e9e806e50.rlib" "-Wl,--start-group" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-908bdd7d5345c9df.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-da3b0a60f410f489.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libobject-d2f3605d72d9878e.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libmemchr-42375a5aa31c9f03.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libaddr2line-8915d8fa7a39869a.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libgimli-8916014024cede10.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-e92e16e2ff65d855.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd_detect-da6eb6c3eea728bd.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-d391253bbc4c88ca.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libminiz_oxide-a3d3406982cd2ead.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libadler-4af492981c5286bc.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-fc2ae5b61e2217bf.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-3282f4dedde3d850.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-1a7e385d58132083.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1e2ad608c3abd50a.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-39bbb9acc1cdef7d.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-d220918d17199684.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-cc4ab766d14b5711.rlib" "-Wl,--end-group" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-b174f0f726a2d532.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lwxmsw31u" "-lkernel32" "-luser32" "-lgdi32" "-lcomdlg32" "-lshell32" "-lshlwapi" "-lcomctl32" "-lole32" "-loleaut32" "-luuid" "-lrpcrt4" "-ladvapi32" "-lversion" "-lws2_32" "-loleacc" "-luxtheme" "-lwxregexu" "-lwxjpeg" "-lwxpng" "-lwxtiff" "-lwxzlib" "-lwxexpat" "-lstdc++" "-lwxmsw31u" "-lkernel32" "-luser32" "-lgdi32" "-lcomdlg32" "-lshell32" "-lshlwapi" "-lcomctl32" "-lole32" "-loleaut32" "-luuid" "-lrpcrt4" "-ladvapi32" "-lversion" "-lws2_32" "-loleacc" "-luxtheme" "-lwxregexu" "-lwxjpeg" "-lwxpng" "-lwxtiff" "-lwxzlib" "-lwxexpat" "-lkernel32" "-lws2_32" "-lbcrypt" "-ladvapi32" "-luserenv" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\x86_64-pc-windows-gnu\\debug\\deps\\wrapsizer-5700ac8183b7a34d.exe" "-Wl,--subsystem" "-Wl,windows" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: collect2.exe: fatal error: cannot find 'ld'
          compilation terminated.

(omit: some cannot find 'ld' errors follow)

digging more...


okay, next I'll try winlibs.com's binary as it looks more handy.

kenz-gelsoft commented 2 years ago

One more step forward with winlibs.com's binary.

ld.exe generates following type link error, but build proceed.

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.10dximx9hgcjh31d.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.13s9r7rwg7fttft6.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.17r0r1zomktjcbnu.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.1k7dd3g8s75f6qzg.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.1np89l0d1x1f03vh.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.1tg5wc4lmcpuwcz5.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.1vhn1kykkemzllv3.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.1zirn8qzu0tt9ckw.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.239fw6rakjjenmpi.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.2hs0e88u5w7yzj16.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.2kfixfb6r62de7cj.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.2mkh6ozgge304w3d.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.2y6l67a5nstsjfqu.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3dyt47kn04b77ywk.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3g3h13jonez6evc8.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3mwswqmo3v0uhtqu.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3q4slfkju4fjlctu.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3rlz6tzavk7ertuh.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.3tu77nzkeku9ojrt.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.41ed5x600dk0uvhx.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.44prhqn95nexe6if.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.450febtdny93z0cl.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.4b2t95y3zcjt433m.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.4nb9ssoo1x9cp2z4.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.52za6d950893oeo7.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.590fxc15fzbqwmff.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.5cxxsac8g1gkrtu1.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.73g08evwdh4lmen.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.djh1twntsahuvmu.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.f2x3v5qhjzjs2jd.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.fjz9uf3e2xgponc.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.fpnnyz374fj3pq1.rcgu.o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.42rk5g5zaauq5s4w.rcgu.o" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\build\\wx-8dabc4a35278ab35\\out" "-L" "C:\\Users\\KENZ\\.cargo\\git\\checkouts\\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\\b41af99/lib" "-L" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\build\\wx-base-8157fca329430921\\out" "-L" "C:\\Users\\KENZ\\.cargo\\git\\checkouts\\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\\b41af99/lib" "-L" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\libwx-100ae22438f3ae63.rlib" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\libwx_base-4fb90401c4c112aa.rlib" "-Wl,--start-group" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-908bdd7d5345c9df.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-da3b0a60f410f489.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libobject-d2f3605d72d9878e.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libmemchr-42375a5aa31c9f03.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libaddr2line-8915d8fa7a39869a.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libgimli-8916014024cede10.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-e92e16e2ff65d855.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd_detect-da6eb6c3eea728bd.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-d391253bbc4c88ca.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libminiz_oxide-a3d3406982cd2ead.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libadler-4af492981c5286bc.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-fc2ae5b61e2217bf.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-3282f4dedde3d850.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-1a7e385d58132083.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1e2ad608c3abd50a.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-39bbb9acc1cdef7d.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-d220918d17199684.rlib" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-cc4ab766d14b5711.rlib" "-Wl,--end-group" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-b174f0f726a2d532.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lwxmsw31u" "-lkernel32" "-luser32" "-lgdi32" "-lcomdlg32" "-lshell32" "-lshlwapi" "-lcomctl32" "-lole32" "-loleaut32" "-luuid" "-lrpcrt4" "-ladvapi32" "-lversion" "-lws2_32" "-loleacc" "-luxtheme" "-lwxregexu" "-lwxjpeg" "-lwxpng" "-lwxtiff" "-lwxzlib" "-lwxexpat" "-lstdc++" "-lwxmsw31u" "-lkernel32" "-luser32" "-lgdi32" "-lcomdlg32" "-lshell32" "-lshlwapi" "-lcomctl32" "-lole32" "-loleaut32" "-luuid" "-lrpcrt4" "-ladvapi32" "-lversion" "-lws2_32" "-loleacc" "-luxtheme" "-lwxregexu" "-lwxjpeg" "-lwxpng" "-lwxtiff" "-lwxzlib" "-lwxexpat" "-lkernel32" "-lws2_32" "-lbcrypt" "-ladvapi32" "-luserenv" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-o" "D:\\Users\\KENZ\\src\\wxRust2\\target\\debug\\deps\\wrapsizer-8df70221c6862e4d.exe" "-Wl,--subsystem" "-Wl,windows" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "D:\\Users\\KENZ\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(utilscmn.cpp.obj):utilscmn.cpp:(.rdata$.refptr.__imp__environ[.refptr.__imp__environ]+0x0): undefined reference to `__imp__environ'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(textcmn.cpp.obj):textcmn.cpp:(.rdata$_ZTV14wxTextCtrlBase[_ZTV14wxTextCtrlBase]+0x820): undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<int>, std::_Ios_Openmode)'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(textctrl.cpp.obj):textctrl.cpp:(.rdata$_ZTV10wxTextCtrl[_ZTV10wxTextCtrl]+0x910): undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<int>, std::_Ios_Openmode)'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(combocmn.cpp.obj):combocmn.cpp:(.rdata$_ZTV19wxComboCtrlTextCtrl[_ZTV19wxComboCtrlTextCtrl]+0x910): undefined reference to `std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<int>, std::_Ios_Openmode)'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(imagpng.cpp.obj):imagpng.cpp:(.text+0x9ff): undefined reference to `_setjmp'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxmsw31u.a(imagpng.cpp.obj):imagpng.cpp:(.text+0x1fe6): undefined reference to `_setjmp'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxpng.a(png.c.obj):png.c:(.text+0x1c19): undefined reference to `_setjmp'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxpng.a(pngerror.c.obj):pngerror.c:(.text+0x755): undefined reference to `_setjmp'
          d:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\KENZ\.cargo\git\checkouts\wx-x86_64-pc-windows-gnu-e3b66c3b51f90859\b41af99/lib/libwxpng.a(pngerror.c.obj):pngerror.c:(.text+0xd6a): undefined reference to `_setjmp'
          collect2.exe: error: ld returned 1 exit status

  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
ancwrd1 commented 2 years ago

Please use msvcrt version of the toolchain, not the ucrt.

kenz-gelsoft commented 2 years ago

Thanks many help.

Finally, I can build WIP PR: https://github.com/kenz-gelsoft/wxRust2/pull/90 HEAD with your prebuilt wx:

I'll merge this PR with some additional cleanup.

kenz-gelsoft commented 2 years ago

I think this is achieved in #90.

Somewhat documented and build (only) CI integrated in #91.

If this doen't work well for you, please open another one.

Thank you very much for your feedback.

Closing...