Как собрать и настроить boost.thread в CodeBlocks в Windows

Я просто хочу задать этот очень тривиальный вопрос, я не знаю, является ли этот вопрос правильным или этот вопрос задавался ранее, и я знаю, что это можно решить, просто посетив документацию по boost. Но я действительно потерян и застрял в настройке boost.thread в C::B,

Я только начинающий, когда дело доходит до этого, и в настоящее время изучаю, как сделать приложение для Windows, ну, не серьезно, просто для учебных целей. Я просто заметил, что мне действительно нужна концепция многопоточности, чтобы она работала. Поэтому я решил использовать библиотеку Boost, я сделал именно то, что говорит Boost Wiki при сборке библиотек, и я думаю, что я не сделал что-то не так.

Я запустил несколько кодов из документации, которые предназначены только для заголовков, и они работают безупречно, но в бустах есть библиотеки, требующие особой обработки, включая boost.thread с которыми у меня возникают трудности. Я знаю # в том числе это на моем файле не сделает Boost.thread работает. Я получил ошибки из этого основного кода, который я нашел из онлайн-учебник (самый первый код на странице многопоточности, который я там нашел) выдает ошибку, которая говорит, что такой файловой директории нет.

||=== Multithreading_sample, Debug ===|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|1|boost/thread.hpp: No such
file or directory|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp||In function `void
wait(int)':|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|6|error: `boost' has not
been declared|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|6|error: `boost' has not
been declared|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|6|error: `seconds' cannot
be used as a function|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|6|error: `sleep' undeclared
(first use this function)|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|6|error: (Each undeclared
identifier is reported only once for each function it appears in.)|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp||In function `int main()':|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|20|error: `boost' has not
been declared|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|20|error: expected `;'
before "t"|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|20|warning: statement is a
reference, not call, to function `thread'|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|20|warning: statement has
no effect|
C:\Documents and Settings\Owner\Desktop\Programming\C++\Dev
C++\App\Multithreading_sample\Multithreading_sample\main.cpp|21|error: `t' undeclared
(first use this function)|
||=== Build finished: 9 errors, 2 warnings ===|

и для которого я знаю, что он не обнаруживает мой boost.thread библиотека, я не знаю, куда идти в этой части. Я искал в Google, но я думаю, что лучше всего создать 1boost.thread1 отдельно, как показано Вот, и я не знаю, что делать дальше.

  • Моя версия библиотеки повышения — 1.51.0, мой C :: B — 10.05, работающий на Windows XP, и я хочу использовать boost.thread в моих кодовых блоках. Все, что я хотел сделать, это просто вставить код, запустить его и посмотреть, как он работает.
  • Моя версия MinGW 3.4.2

1

Решение

Наконец, после нескольких дней исследований, поиска и перекрестных ссылок на множество решений в Интернете, я, наконец, создал первый код на своем сайте.

Первое, что я сделал, это то, что я включил extract_directory в качестве основы для встроенных полей в глобальных переменных. Затем я перешел к параметрам проекта и щелкнул по названию проекта в иерархии. В каталогах поиска я добавил $ (# boost.include) на вкладке компилятора и $ (boost) \ stage \ lib на вкладке компоновщика.

Я снова начал с нуля перестройку boost (esp building boost.thread library), и я снова следую тому, что точно написано в документации, а затем я наконец-то получил ошибку, сообщив о неопределенной ссылке в Boost :: system. Что я сделал, чтобы решить эту проблему, так это связать свой проект с этой boost.system (которая в моем случае была файлом в моей папке stage \ lib).

Я связываю эту библиотеку в моем проекте
libboost_system-mgw34-мт-1_51.a

Когда я компилировал свою программу, произошла ошибка, сообщающая о неопределенной ссылке на boost :: chrono, имя библиотеки которой:

libboost_chrono-mgw34-мт-1_51.a

и я также связываю свой проект с ним, так же, как я делал для boost :: system.

И это компилируется! Без каких-либо предупреждений я узнал из этого опыта, что мне нужно искать нужные библиотеки, и пока я просто связываю библиотеку boost.thread, а error просто повторяет неопределенную ошибку ссылки на boost.system. что я не знаю, как-то связано с буст-потоками или другими библиотеками (это первая ошибка, с которой я столкнулся до того, как все испортилось). Я думаю, что есть несколько вызовов функций внутри каждой библиотеки надстроек, которые находятся в других библиотеках, поэтому я должен также связаться с ними, что требует такого вызова.

Спасибо, ребята, за ваши добрые ответы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]