Hi,
I've been playing with rust-qt and tried out their "basic_form" example code.
Unfortunately, it doesn't compile. I'm getting the following error message:
basic_form $ cargo build
Compiling basic_form v0.0.0 (/tmp/examples/widgets/basic_form)
error: linking with `x86_64-pc-linux-gnu-gcc` failed: exit code: 1
|
= note: "x86_64-pc-linux-gnu-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.11skkonaf88na1.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.181hhny4xk8eddhl.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.1bkbir3235lyh4ma.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.1cl72p5yscv3mfle.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.1l074r1na2ql3o5g.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.1nc2mk31n72ho7r.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.1zctx9csuwf5d6pf.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2258nddxmd0a8kr7.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.265t7nf6z6ggts3i.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2ar9mac7zaszcp0.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2hj9ytq4ekah741n.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2q8yuqnsg1mjgsdo.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2r44js71uivkt5z0.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2si7hh3f4hq5h9st.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2tf23hk6ohy620kc.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.358jos8ow044247f.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.39rlta4wfuhtlcrf.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.3ls6kmd7tdygo0w.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.3na59g6udrflomuc.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.3rzjg9zt4t0n2ewx.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.3y227q0fzv4q0s01.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.3ykvr4gjaixm6ukd.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.47a6svobcie6uevc.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.48soy3c0263nnlrn.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.4cczngbar4s373oj.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.4h4v7evbmrwu9k31.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.4vh7kwne9mlne7p4.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.4y2wti5fe0tq0j0e.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.51p8qbwzb4zgqmgg.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.5culxi6kmzzb927i.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.5epo3cary3g4nzi2.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.5eyfs9dqyxkrddk6.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.7zb7b49mo1ahd2m.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.93pgtr0jl2705ax.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.a4k582y9gzo8zrg.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.b66dwu7konenv5f.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.flcg8ool7tkxxhc.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.kaenpe9w0ojfqn3.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.lwqcsenfanw27ux.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.mydgwbgx4hu3e6b.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.soa46gkh9eb0qq5.rcgu.o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.wh043veokbcb2oq.rcgu.o" "-o" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5" "/tmp/examples/target/debug/deps/basic_form-a58922b629b36ec5.2r7kdo6xstii6442.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/tmp/examples/target/debug/deps" "-L" "/usr/lib64" "-L" "/tmp/examples/target/debug/build/qt_core-0cd7e43526cfa5b5/out/c_lib_install" "-L" "/usr/lib64" "-L" "/tmp/examples/target/debug/build/qt_gui-dfc3ba09dd9e3576/out/c_lib_install" "-L" "/usr/lib64" "-L" "/tmp/examples/target/debug/build/qt_ui_tools-8001f5010ec08f1f/out/c_lib_install" "-L" "/usr/lib64" "-L" "/tmp/examples/target/debug/build/qt_widgets-7528dd4932bd171d/out/c_lib_install" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/examples/target/debug/deps/libqt_widgets-64e4230c12fa5384.rlib" "/tmp/examples/target/debug/deps/libqt_gui-bcde92e3ef00b509.rlib" "/tmp/examples/target/debug/deps/libqt_core-ffe30365118fc3f6.rlib" "/tmp/examples/target/debug/deps/libcpp_core-8742898670354d8f.rlib" "/tmp/examples/target/debug/deps/liblibc-da901b251157b1bc.rlib" "-Wl,--start-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-0ef0ec27e773710d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c95d086179a85cd7.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-25266cb20a947e6d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-dbad2eeb62a365b4.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-26c94c940bca2a8b.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-95e71e176a4e7fb4.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-e5816244ed4121a3.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-b546363658128c8d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-ff3b0d0d5b96c2ff.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-dda834eb56e1f40d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-79a48e7d265f1b5b.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-71b815e0d535e402.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-e3774c3e85ce8907.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d7a7cb63a2bf98a2.rlib" "-Wl,-Bdynamic" "-lQt5Widgets" "-lQt5Core" "-lQt5Gui" "-lstdc++" "-lQt5Gui" "-lQt5Core" "-lstdc++" "-lQt5Core" "-lstdc++" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" "-flto=n"
= note: /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/examples/target/debug/deps/libqt_core-ffe30365118fc3f6.rlib(file1.cpp.o): in function `qfloat16::qfloat16(float)':
/usr/include/qt5/QtCore/qfloat16.h:170: undefined reference to `qfloat16::basetable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/include/qt5/QtCore/qfloat16.h:171: undefined reference to `qfloat16::shifttable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/examples/target/debug/deps/libqt_core-ffe30365118fc3f6.rlib(file1.cpp.o): in function `qfloat16::operator float() const':
/usr/include/qt5/QtCore/qfloat16.h:187: undefined reference to `qfloat16::offsettable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/include/qt5/QtCore/qfloat16.h:187: undefined reference to `qfloat16::mantissatable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/include/qt5/QtCore/qfloat16.h:188: undefined reference to `qfloat16::exponenttable'
collect2: Error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile `basic_form`.
I'm running Gentoo Linux and have Qt 5.14.1 installed. cargo and rust are at version 1.42
Here's my gcc version:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/9.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-9.3.0/work/gcc-9.3.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/9.3.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/9.3.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/9.3.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/9.3.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/9.3.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 9.3.0 p2' --disable-esp --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-altivec --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libmudflap --disable-libssp --disable-libada --disable-systemtap --enable-vtable-verify --enable-lto --without-isl --enable-default-pie --enable-default-ssp
Thread model: posix
gcc version 9.3.0 (Gentoo 9.3.0 p2)
What I've tried:
-
I thought this might be related to lto, so I added this to
.cargo/config
:[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-flto=n"]
That didn't help anything.
So I tried
rustflags = ["-C", "linker-plugin-lto"]
This also didn't change anything.
-
I figured it might be related to pie, so I tried this in
.cargo/config
:[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-no-pie"]
That actually changed something, unfortunately it just gives another error:
basic_form $ cargo build
Compiling proc-macro2 v1.0.9
Compiling libc v0.2.68
Compiling unicode-xid v0.2.0
Compiling syn v1.0.17
Compiling serde v1.0.105
Compiling memchr v2.3.3
Compiling cc v1.0.50
Compiling cfg-if v0.1.10
Compiling ryu v1.0.3
Compiling log v0.4.8
Compiling failure_derive v0.1.7
Compiling lazy_static v1.4.0
Compiling byteorder v1.3.4
Compiling regex-syntax v0.6.17
Compiling rustc-demangle v0.1.16
Compiling term v0.4.6
Compiling either v1.5.3
Compiling semver-parser v0.7.0
Compiling itoa v0.4.5
Compiling pathdiff v0.1.0
Compiling dunce v1.0.0
Compiling shell-words v0.1.0
Compiling quick-error v1.2.3
Compiling termcolor v1.1.0
Compiling thread_local v1.0.1
Compiling term-painter v0.2.4
Compiling itertools v0.8.2
Compiling semver v0.9.0
Compiling backtrace-sys v0.1.34
Compiling humantime v1.3.0
Compiling num_cpus v1.12.0
Compiling atty v0.2.14
Compiling cpp_core v0.6.0
Compiling aho-corasick v0.7.10
Compiling quote v1.0.3
Compiling backtrace v0.3.45
Compiling regex v1.3.5
Compiling env_logger v0.7.1
Compiling toml v0.4.10
Compiling bincode v1.2.1
Compiling serde_json v1.0.48
Compiling synstructure v0.12.3
Compiling serde_derive v1.0.105
Compiling proc-macro-hack v0.5.12
error: linking with `x86_64-pc-linux-gnu-gcc` failed: exit code: 1
|
= note: "x86_64-pc-linux-gnu-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.0.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.1.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.10.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.11.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.12.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.13.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.14.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.15.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.2.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.3.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.4.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.5.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.6.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.7.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.8.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.failure_derive.3vfctl4x-cgu.9.rcgu.o" "-o" "/tmp/examples/target/debug/deps/libfailure_derive-3c8a235502a83b80.so" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.1w94sghd5kvn9hy0.rcgu.o" "/tmp/examples/target/debug/deps/failure_derive-3c8a235502a83b80.5ft7e1y2i72tx8xy.rcgu.o" "-Wl,--gc-sections" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/tmp/examples/target/debug/deps" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/examples/target/debug/deps/libsynstructure-db208057fabec5f9.rlib" "/tmp/examples/target/debug/deps/libsyn-4f15b93a98ee764f.rlib" "/tmp/examples/target/debug/deps/libquote-98eaec2f6357c230.rlib" "/tmp/examples/target/debug/deps/libproc_macro2-1484557871c4589a.rlib" "/tmp/examples/target/debug/deps/libunicode_xid-85e6d4f79e56e064.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-64239979807c3675.rlib" "-Wl,--start-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-0ef0ec27e773710d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c95d086179a85cd7.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-25266cb20a947e6d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-dbad2eeb62a365b4.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-26c94c940bca2a8b.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-95e71e176a4e7fb4.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-e5816244ed4121a3.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-b546363658128c8d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-ff3b0d0d5b96c2ff.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-dda834eb56e1f40d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-79a48e7d265f1b5b.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-71b815e0d535e402.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-e3774c3e85ce8907.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d7a7cb63a2bf98a2.rlib" "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" "-shared" "-no-pie"
= note: /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../lib64/crt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: Error: ld returned 1 exit status
Do you have any ideas what else I could try?
Thanks in advance!
Robert