the-butterfly-effect / tbe

The Butterfly Effect, a realistic physics simulation game
http://the-butterfly-effect.org
GNU General Public License v2.0
96 stars 13 forks source link

Linking error: QTest #357

Open Wuzzy2 opened 4 years ago

Wuzzy2 commented 4 years ago

I have problems building TBE right now. At the end of the build process, I get this:

/usr/bin/ld: CMakeFiles/tbe.dir/view/RegressionTest.cpp.o: in function `QTest::simulateEvent(QWidget*, bool, int, QFlags<Qt::KeyboardModifier>, QString, bool, int)':
RegressionTest.cpp:(.text+0xa34): undefined reference to `QTest::defaultKeyDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0xa4e): undefined reference to `QTest::defaultKeyDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0xb43): undefined reference to `QTest::qWarn(char const*, char const*, int)'
/usr/bin/ld: CMakeFiles/tbe.dir/view/RegressionTest.cpp.o: in function `QTest::mouseEvent(QTest::MouseAction, QWindow*, Qt::MouseButton, QFlags<Qt::KeyboardModifier>, QPoint, int)':
RegressionTest.cpp:(.text+0x1816): undefined reference to `QTest::qWarn(char const*, char const*, int)'
/usr/bin/ld: RegressionTest.cpp:(.text+0x186c): undefined reference to `QTest::defaultMouseDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1889): undefined reference to `QTest::defaultMouseDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0x18ac): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x18bd): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1a22): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1a31): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1a3d): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1a46): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1a7b): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ab3): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ac2): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ace): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ad7): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b0c): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b44): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b53): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b5f): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b68): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1b9d): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1bc8): undefined reference to `QTest::lastMouseButton'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1bf1): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c00): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c0c): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c15): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c4a): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c75): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c84): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c8d): undefined reference to `QTest::lastMouseButton'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1c9f): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1cab): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1cb4): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ce2): undefined reference to `QTestPrivate::qtestMouseButtons'
/usr/bin/ld: CMakeFiles/tbe.dir/view/RegressionTest.cpp.o: in function `QTest::mouseEvent(QTest::MouseAction, QWidget*, Qt::MouseButton, QFlags<Qt::KeyboardModifier>, QPoint, int)':
RegressionTest.cpp:(.text+0x1eb8): undefined reference to `QTest::defaultMouseDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ed5): undefined reference to `QTest::defaultMouseDelay()'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1ef8): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x1f09): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x2175): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x2181): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: RegressionTest.cpp:(.text+0x218a): undefined reference to `QTest::lastMouseTimestamp'
/usr/bin/ld: CMakeFiles/tbe.dir/view/RegressionTest.cpp.o:RegressionTest.cpp:(.text+0x2276): more undefined references to `QTest::lastMouseTimestamp' follow
/usr/bin/ld: CMakeFiles/tbe.dir/view/RegressionTest.cpp.o: in function `QTest::mouseEvent(QTest::MouseAction, QWidget*, Qt::MouseButton, QFlags<Qt::KeyboardModifier>, QPoint, int)':
RegressionTest.cpp:(.text+0x2556): undefined reference to `QTest::qWarn(char const*, char const*, int)'

Qt: 5.15.0 TBE version: db6fc202b4468232012c137098d7a20b235c77b7 OS: Arch Linux

amarsman commented 4 years ago

I have downloaded Qt 5.15 from qt.io and installed it on Ubuntu 20.04, I have VMs of several Linux distro's but Arch is not one of them.

After also installing gettext I got a successful build (saw also some deprecation warnings). So no linking issue with the binary version of Qt 5.15 build by the Qt Company.

TBE also started fine.