Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Qt vs NetBeans на одном компьютере

Автор: idovbeta 30.11.2012, 7:54

С год работаю на Qt. Недавно понадобился NetBeans (программы на С для встроенного компа). Там, на NetBeans понадобились потоки pthread для распараллеливания.
Наладил, работает.
С перерывом снова вышел на 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
При этом тот самый первый в цепочке header'ов gthr-default.h на той самой 41й строке содержит вызов файла pthread.h

Как можно решить проблему - кроме как "все снести, отформатировать диск и с liveCD все по новой загрузить"?
Снести один QtCreator и снова его инсталлировать я уже пробовал, не помогает.

Автор: Алексей1153 30.11.2012, 11:17

очевидно, что для начала надо разобраться, почему не виден cpu_set_t и "остальные идентификаторы"

а что делал, какие действия с файлами, что привело к косякам ?

Автор: idovbeta 30.11.2012, 11:52

Цитата(Алексей1153 @ 30.11.2012, 12:17) *
очевидно, что для начала надо разобраться, почему не виден cpu_set_t и "остальные идентификаторы"

а что делал, какие действия с файлами, что привело к косякам ?

добавил на NetBeans возможность работать с pthread, для чего добавил файл pthread.h в один из системных директориев и присоединил библиотеку libpthread, он была, я там только ссылку сделал без цифр после so.

Автор: vankleef 30.11.2012, 21:01

Если используешь netbeans с mingw, там есть стандартно posix threads:
ПКМ по проекту -> properties -> Build/Linker и справа пункт Libraries, на кнопку около него, потом Add standart Librariy, Posix Threads.
И не надо ничего самому копировать.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)