LINUX.ORG.RU

ошибка random со 128 integer

 , , , ,


0

2

Есть такая ошибка:

[olegchir@archi skypetab-ng]$ make
/usr/lib/qt4/bin/uic aboutdialog.ui -o ui_aboutdialog.h
/usr/lib/qt4/bin/uic settingsdialog.ui -o ui_settingsdialog.h
g++ -c -m32 -pipe -std=c++0x -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Wall -W -D_REENTRANT -fPIC -DSKYPETABNG_LIBRARY -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-32 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o mainwindow.o mainwindow.cpp
In file included from /usr/include/c++/4.8.1/random:50:0,
                 from /usr/include/c++/4.8.1/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8.1/algorithm:62,
                 from /usr/include/qt4/QtCore/qglobal.h:68,
                 from /usr/include/qt4/QtCore/qnamespace.h:45,
                 from /usr/include/qt4/QtCore/qobjectdefs.h:45,
                 from /usr/include/qt4/QtGui/qwindowdefs.h:45,
                 from /usr/include/qt4/QtGui/qwidget.h:46,
                 from /usr/include/qt4/QtGui/QWidget:1,
                 from mainwindow.cpp:23:
/usr/include/c++/4.8.1/bits/random.h:106:26: error: expected unqualified-id before ‘__int128’
       { typedef unsigned __int128 type; };
                          ^
make: *** [mainwindow.o] Error 1

Исходная прога юзает qt, который юзает <algorithm>, который юзает <random>, который юзает __int128.

По этому поводу разработчики GCC сказали «разбирайтесь как хотите»:

http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html

6.8 128-bit integers

As an extension the integer scalar type __int128 is supported for targets which have an integer mode wide enough to hold 128 bits. Simply write __int128 for a signed 128-bit integer, or unsigned __int128 for an unsigned 128-bit integer. There is no support in GCC for expressing an integer constant of type __int128 for targets with long long integer less than 128 bits wide.

В 64-битном режиме всё конпеляется, не копеляется при qmake-qt4 -spec linux-g++-32

Проблема в том, что эта прога, при конпеляции которой происходит ошибка - дополнение к Скайпу. А скайп 32-битный и исходников от него не придвидится.

Чтобы прилепить к скайпу 32-битную либу, нужно собрать ее под 32-бита, верно? Иначе будет

ERROR: ld.so: object '/home/olegchir/git/skypetab-ng/libskypetab.so' from LD_PRELOAD cannot be preloaded: ignored.

Что бы по этому поводу такого можно было сделать, без тотального переписывания сабжа без qt?

(кому интересно, вот: https://github.com/kekekeks/skypetab-ng)

★★★★☆

-m32 --march=x86-64

Это как?

queen3 ★★★★★
()
Ответ на: комментарий от dimon555

это не мне, а Qt нужно. Ошибка жеж в <algorithm>

stevejobs ★★★★☆
() автор топика

Не совсем понял - разве это не баг libstd?

tff
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.