Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: idov от Ноябрь 30, 2012, 11:48



Название: Когда достиг возможности работать NetBeans с pthread, перестал работать Qt
Отправлено: idov от Ноябрь 30, 2012, 11:48
Около года как перешел на Qt.
Недавно надо было написать программку на С с потоками. Взял NetBeans, отдельно пришлось добавлять pthread.h
заработало. Спустя время вновь полез на Qt. А он перестал компилировать, выдавая в самом начале

g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I../proba1 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I../proba1 -I. -o main.o ../proba1/main.cpp
In file included from /usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h:41:0,
                 from /usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h:170,
                 from /usr/include/c++/4.6/ext/atomicity.h:34,
                 from /usr/include/c++/4.6/bits/basic_string.h:41,
                 from /usr/include/c++/4.6/string:54,
                 from /usr/include/qt4/QtCore/qstring.h:54,
                 from /usr/include/qt4/QtCore/qobject.h:48,
                 from /usr/include/qt4/QtCore/qcoreapplication.h:45,
                 from /usr/include/qt4/QtGui/qapplication.h:45,
                 from /usr/include/qt4/QtGui/QApplication:1,
                 from ../proba1/main.cpp:1:
/usr/include/pthread.h:390:14: error: 'cpu_set_t' does not name a type
/usr/include/pthread.h:397:6: error: 'cpu_set_t' has not been declared
/usr/include/pthread.h:459:16: error: 'cpu_set_t' does not name a type
/usr/include/pthread.h:464:8: error: 'cpu_set_t' has not been declared
In file included from /usr/include/c++/4.6/i686-linux-gnu/./bits/gthr.h:170:0,
                 from /usr/include/c++/4.6/ext/atomicity.h:34,
                 from /usr/include/c++/4.6/bits/basic_string.h:41,
                 from /usr/include/c++/4.6/string:54,
                 from /usr/include/qt4/QtCore/qstring.h:54,
                 from /usr/include/qt4/QtCore/qobject.h:48,
                 from /usr/include/qt4/QtCore/qcoreapplication.h:45,
                 from /usr/include/qt4/QtGui/qapplication.h:45,
                 from /usr/include/qt4/QtGui/QApplication:1,
                 from ../proba1/main.cpp:1:
/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h:130:1: error: 'sched_yield' was not declared in this scope
/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h:130:1: error: invalid type in declaration before ';' token
/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h: In function 'int __gthread_yield()':
/usr/include/c++/4.6/i686-linux-gnu/./bits/gthr-default.h:693:33: error: '__gthrw_sched_yield' cannot be used as a function
make: *** [main.o] Error 1

При этом "самый первый" файл-хэдер в той самой строке ссылается на pthread.h
Можно ли как-то малой кровью решить? (не хочется снова грузиться с liveCD)


Название: Re: Когда достиг возможности работать NetBeans с pthread, перестал работать Qt
Отправлено: Fregloin от Ноябрь 30, 2012, 16:33
хм, я так понял Вы пытаетесь собрать Сишную прогу с потоками в Qt?
А платформы совпадают? ну в смысле судя по всему исходники под unix/linux?
Тут тулчше смотреть в сторону QThread, если хотите сделать переносимым...


Название: Re: Когда достиг возможности работать NetBeans с pthread, перестал работать Qt
Отправлено: idov от Декабрь 01, 2012, 08:44
хм, я так понял Вы пытаетесь собрать Сишную прогу с потоками в Qt?
А платформы совпадают? ну в смысле судя по всему исходники под unix/linux?
Тут тулчше смотреть в сторону QThread, если хотите сделать переносимым...
Не совсем так. У меня на одной машине и Qt и NetBeans. Программа на С++ сделанная в Qt должна впоследствии делать красивую картинку на одном компе(embedded), а вторая, сделанная на С в NetBeans (тоже embedded) должна работать с аппаратурой и по ethrnet'у посылать той, первой, данные, чтобы она их красиво показывала на экранчике. Причем автономными потоками щупать аппаратуру должна именно вторая, на С.