Compiling example from rust-qt fails

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:

  1. 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.

  1. 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

Can you successfully build a C++ program that uses qfloat16?

This could potentially be caused by a mismatch between versions of Qt headers and libs. Do you have other Qt versions installed? Can you show the output of qmake?

Similar errors are sometimes caused by rust-qt crates used with untested Qt versions, but Qt 5.14.1 is one of the versions checked in CI, so maybe something in your setup causes it.

Thanks for your reply!

I tried this:

#include <qfloat16.h>

int main(int argc, char *argv[])
{
    qfloat16::_limit_max();
    return 0;
}

And this compiles and runs fine.

I only have one Qt installation. I also know from my package manager that the header files used have been installed together with the Qt binaries, so their version should match.

Running qmake doesn't give any output. Where should I run it, and do I need to add any parameters?

It doesn't seem to be a Rust or rust-qt problem, I could reproduce it with this C++ program:

#include <qfloat16.h>

int main(int argc, char *argv[])
{
    const qfloat16 x = 5;
    return (int) x.qfloat16::operator float();
}

When compiling, it results in a similar error:

$ make
g++ -Wl,-O1 -o qttest2 main.o mainwindow.o moc_mainwindow.o   /usr/lib64/libQt5Widgets.so /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Core.so -lGL -lpthread   
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: in function `main':
main.cpp:(.text.startup+0x3): undefined reference to `qfloat16::shifttable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.cpp:(.text.startup+0xa): undefined reference to `qfloat16::basetable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.cpp:(.text.startup+0x25): undefined reference to `qfloat16::offsettable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.cpp:(.text.startup+0x3e): undefined reference to `qfloat16::exponenttable'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.cpp:(.text.startup+0x48): undefined reference to `qfloat16::mantissatable'
collect2: error: ld returned 1 exit status
make: *** [Makefile:302: qttest2] Error 1

Running qmake doesn't give any output. Where should I run it, and do I need to add any parameters?

Yeah, sorry, I meant qmake -query.

The issue could be caused by the fact that float tables in Qt 5.14.1 are defined behind #if !defined(__F16C__) (source). Curiously, this condition was removed in Qt 5.14.2 (source; it's also funny that the corresponding #endif comment wasn't updated). Not sure how it can break the build if Qt was built by the same gcc, but if Qt was built with gcc that supports F16C and your current gcc doesn't support it, that would cause the issue. You can try to use Qt 5.14.2 or try to rebuild Qt with your current gcc (if it wasn't the case already).

Updating to QT 5.14.2 solved the problem, thank you for your help!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.