Здравствуйте, гость ( Вход | Регистрация )
RazrFalcon | Дата 25.10.2010, 13:49 |
Точно, пример с инета брал, видать кривой попался. Скомпилило, правда boost::mutex m_mutex; так и подсвечивается , но это не влияет на компиляцию. Всем спасибо, буду дальше разбираться. |
|
BRE | Дата 25.10.2010, 13:35 |
А что это за переменная mutex? В классе threaded_class таких нет, зато есть m_mutex.
|
|
RazrFalcon | Дата 25.10.2010, 13:24 |
INCLUDEPATH вообще не влияет на компиляцию. вывод Running build steps for project untitled... Starting: "/usr/bin/qmake-qt4" /media/data/Additional/makefiles/untitled.pro -r -spec linux-g++ --version QMake version 2.01a Using Qt version 4.7.0 in /usr/lib The process "/usr/bin/qmake-qt4" exited normally. Starting: "/media/data/Additional/makefiles/build-wrapper.bash" Release ======== Build Started ========= g++ -c -Wall hello.cpp -o hello.o hello.cpp: In member function ‘void threaded_class::do_work()’: hello.cpp:32: error: ‘mutex’ was not declared in this scope hello.cpp: In constructor ‘threaded_class::threaded_class()’: hello.cpp:15: warning: ‘threaded_class::nbFibSteps’ will be initialized after hello.cpp:14: warning: ‘boost::thread threaded_class::m_thread’ hello.cpp:38: warning: when initialized here make: *** [hello.o] Error 1 ======== Build Finished ======== The process "/media/data/Additional/makefiles/build-wrapper.bash" exited normally. Error while building project untitled (target: Desktop) When executing build step 'Make' Если просто пустой проект создать, прописать хедеры, и в где либо написать boost::mutex m_mutex; к примеру, то скомпилится пустой проэкт, при том что без ошибок и варнингов, только подчеркнут будет boost::mutex m_mutex;, при наведении на который будет писаться: "boost::mutex is not a type name" PS: да, я знаю про 1.44 и ставил уже, но толку 0, поэтому откатился на эти пока. |
|
Iron Bug | Дата 25.10.2010, 6:55 |
boost 1.42 из репов зачем 1.42 bp из репов, если уже 1.44 официальный есть? но сути это не меняет. выше было чётко указано, что надо указать ему заголовки в инклюдах. у тебя там с путями странность: #include <boost/thread/mutex.hpp> INCLUDEPATH = -I/usr/include/boost у тебя файлы ищутся в каталоге /usr/include/boost/boost/xxxx. ты уверен, что надо указывать /usr/include/boost, а не /usr/include? однако, в этом случае компилер обязательно сообщит, что не нашёл файл. не может быть, что не скажет. так что внимательнее читай сообщения компилера. |
|
RazrFalcon | Дата 24.10.2010, 19:51 |
Пример из инета, суть не меняет в принципе, брал здесь. Хотя от примера не зависит в прочем. срр
Makefile на всякий случай
Через консоль тоже безрезультатно. Ubuntu 10.10 + boost 1.42 из репов. |
|
igor_bogomolov | Дата 24.10.2010, 18:35 |
RazrFalcon, ты пространство имён не забыл указать. В доках есть примеры использования. В коде будет примерно так
|
|
RazrFalcon | Дата 24.10.2010, 16:31 |
Начал разбираться с boost, а конкретно с boost thread. Во многих примерах используется mutex (#include <boost/thread/mutex.hpp>) Но во время компиляции влазит вечно ошибка error: ‘mutex’ was not declared in this scope То есть если я набираю boost:: то в вариантах подстановки есть к примеру thread, а mutex нет. Почему? Из-за этого немогу инициализировать переменную. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 20:45 |