Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.231.180.210] |
|
Сообщ.
#1
,
|
|
|
Пишу код
using boost::chrono::duration_cast; using boost::chrono::microseconds; typedef boost::chrono::high_resolution_clock clock; typedef boost::chrono::time_point<clock> time_point; компилятор выдает ошибки во всех четырех строках Ошибка (активно) E0276 имя, за которым следует выражение "::", должно определять класс или пространство имен Helper H:\studyprojects\Helper\Helper\Helper.cpp 69 в последней строке еще добавляет ошибку требуется точка с запяой";"подчеркивая красным угловую скобку после clock.В настройках проекта я указал пути к boost изображение в прикрепленном файле.Что не нравится компилятору.как устранить ошибку? Папку C:\Program Files\Boost 1_81_0 я создавал вручную а в нее разархивировал файл boost_1_81_0.7z Прикреплённая картинка
|
Сообщ.
#2
,
|
|
|
Понятия не имею, что там у тебя. Я вот тоже просто распаковал версию 1.81.0, и компиляция работает. (Не работает сборка, но это потому, что либу надо собрать, чего я пока не сделал.) Единственное, что вызывает диссонанс, имя "clock" уже известно компилятору как функция, подозреваю, что из-за включения <ctime> где-то в недрах boost.
А почему именно boost? В std давно уж есть свой <chrono> |
Сообщ.
#3
,
|
|
|
izumov
include-ы какие сделали перед вашими декларациями?? |
Сообщ.
#4
,
|
|
|
Вот все штсдгв-ы в файле
#include <iostream> #include <clocale> //#include <fcntl> #include <io.h> #include <stdio.h> //#include <Windows.h> #include <iostream> #include <sstream> #include <BaseTsd.h>//для доступа кописанию типа данных ulong64 #include <time.h> //подключение библиотеки chrono для измерения длительности выполнения участка кода //#include <chrono> #include <boost/thread.hpp> #include <boost/bind.hpp> #include <boost/asio.hpp> #include <boost/shared_ptr.hpp> #include <boost/enable_shared_from_this.hpp> #include <boost/scoped_ptr.hpp> #include <boost/chrono.hpp> #include <string> #include <conio.h> Пробовал найти эту библиотеку libboost_thread-vc143-mt-gd-x64-1_81.lib с помощью проводника в папках boost рузультат отрицательный. Устанавливал booost с помощью инсталлятора для windows. |
Сообщ.
#5
,
|
|
|
Сейчас сборщик выдаёт одну ошибку-не удаётся открыть файл библиотеки которую я указал.Ее действительно нет в папках boost.Как быть?Где её взять и добиться сборки проекта?
|
Сообщ.
#6
,
|
|
|
Ну во-первых, всё, что ты тут берёшь из boost, имеется и в std. Кроме asio, который пока в разработке, но есть базовые примитивы вроде promise, future, optional и кое-кто ещё. Так что не вижу абсолютно никаких мотиваций дёргать boost ради thread, bind, shared, scoped и chrono.
Во-вторых, библиотеки, как это везде всегда бывает, нужны разные в зависимости от режимов компиляции. Тебе вот, к примеру, нужны (чтоб не соврать бы ещё) не отладочные многопоточные библиотеки для динамической линковки, динамически связываемые с библиотеками RTL, для 64-битных приложений. Это для Visual Studio соответствует (вроде бы) параметру компиляции -MD, но это неточно. Чтобы компилировать в другом режиме, для отладки там или со статическим связыванием, такие библиотеки boost нужно собрать отдельно. По умолчанию b2.exe он собирает лишь один вариант, чтобы собрать другие ваниаты, запусти его с --help, он там всё расскажет. Смотри пропертя variant, link, runtime-link и threading. P.S. Я в своё время собирал четыре варианта (однопоточные/многопоточные, статические/динамические) в двух версиях (debug/release), но это было слишком много. Потом остановился на трёх вариантах: статические и динамические release + статические debug, причём только многопоточные. P.P.S И да, нет особого смысла собирать динамические либы со статическим связываем RTL и наоборот. Проще, чтобы тип связывания совпадал. Добавлено P.P.P.S. Впрочем, ты можешь просто запустить b2 с параметром --build-type=complete и не париться, он соберёт всё возможные варианты. Но будь готов к гигабайтам на диске и хреновой куче времени. |
Сообщ.
#7
,
|
|
|
В какой папке запускать b2?Учитывая что boost я устанавливал с помощью уже прекомпилированой сборки
|
Сообщ.
#8
,
|
|
|
Гм... Я предкомпилированными не пользовался, как раз из-за малого количества вариантов библиотек. Просто брал сырцы в 7z, распаковывал, запускал bootstrap.bat, он создавал мне b2.exe. А уж он как раз для сборки библиотек и предназначен. Сильно подозреваю, что вариант рабочий и в твоём случае.
|