Я пытался интегрировать свою программу с QT. Однако я получил следующие ошибки компоновщика:
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libQt5Core.so: undefined reference to `pow@GLIBC_2.29'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libQt5Core.so: undefined reference to `renameat2@GLIBC_2.28'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libQt5Core.so: undefined reference to `statx@GLIBC_2.28'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so: undefined reference to `log@GLIBC_2.29'
Если я проверяю мои libc и libm с помощью readelf -a
, я вижу, что мои общие объекты содержат эти символы, но с двумя @@
. Например, libc:
Symbol table '.dynsym' contains 2361 entries:
Num: Value Size Type Bind Vis Ndx Name
[...]
44: 0000000000055d60 109 FUNC WEAK DEFAULT 14 renameat2@@GLIBC_2.28
870: 00000000000eaf80 487 FUNC GLOBAL DEFAULT 14 statx@@GLIBC_2.28
В чем может быть проблема, и как я могу решить эту проблему? В чем разница между @
и @@
?
Мой компоновщик: GNU ld (GNU Binutils for Debian) 2.33.1