0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
||||||||||||||||
1 | ||||||||||||||||
Как правильно вызвать поток в консольной программе01.11.2014, 15:20. Показов 2525. Ответов 24
Метки нет (Все метки)
Всё! Совсем завяз, уже создал пустой проект, чтобы разобраться с этими потоками. Гугл уже снится, но там, похоже, у всех всё работает, а у меня нет. Вот проект упрощен до минимума.
файл.pro
0
|
01.11.2014, 15:20 | |
Ответы с готовыми решениями:
24
Правильно вызвать поток Как на VC ++ в консольной программе узнать ... Как работать с реестром в консольной программе? Как подключить dll к консольной программе в Dev-CPP ? |
шКодер самоучка
|
||||||
01.11.2014, 15:37 | 2 | |||||
Сообщение было отмечено Димитрий как решение
Решение
Димитрий, Вы не в ту строку добавляете параметры компилятора
1
|
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
|
01.11.2014, 16:34 [ТС] | 3 |
Спасибо, надо было раньше обратиться за помощью, всё равно информации, как правильно настроить компилятор для многопоточных приложений почти нет.
0
|
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
|
02.11.2014, 10:58 [ТС] | 5 |
Да, вообще - по настройке компилятора почти вся инфа для особо продвинутых, для навичков - минимум.
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
02.11.2014, 11:09 | 6 |
0
|
232 / 232 / 69
Регистрация: 30.09.2012
Сообщений: 545
|
||||||
02.11.2014, 11:19 | 7 | |||||
В про файле для поддержки с++11 хватает просто
0
|
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
|
04.11.2014, 13:36 [ТС] | 8 |
А библиотеки вы где подключать собираетесь (пути к либам)? А как в моём случае многопоточность? Знаете, сколько пришлось перелапатить, чтобы понять, что надо добавить что-то в про-файл. И ни в одном учебнике ни строчки, просто дабавьте через инклуде заголовочный файл и работайте, а что кампилятор настроить надо ...
Нет, иначе бы не спрашивал тут: как и что.
0
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|||||||||||
04.11.2014, 15:13 | 9 | ||||||||||
Версия Qt какая?
Если 5, то надо:
0
|
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
|
04.11.2014, 15:42 [ТС] | 10 |
Программировал в борланде С++6, чтобы писать кросплатформенные программки и использовать библиотеку Opencv, решил перейти на Qt. Пытаюсь освоить уже с месяц. Обьясните поподробней вашу рекомендацию. Как можно использовать многопоточность средствами С++, не используя средства Qt ?
0
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
04.11.2014, 16:26 | 11 |
Сообщение было отмечено Димитрий как решение
Решение
Чтобы писать кросс-платформенные программки без GUI, как у вас в примере в шапке темы, достаточно писать используя STL С++ 11, потому что C++ 11, по сути, поддерживают все компиляторы на всех операционных системах лишь с маленькими различиями. Код С++ - платформонезависимый код по определению, пока вы не используете что-то зависящее от ОС, например WinApi и работу с реестром или платформозависимые фреймворки.
Если же вы хотите писать именно графические приложения, то Qt имеет свои средства многопоточности. Можно и C++ 11, как удобнее, все зависит от проектирования и желания. Итак, чтобы четко понять - у вас три варианта реализовать многопоточность, и все 3 варианта кросс-платформенные: 1. Использовать потоки С++ 11 (надо включить в .pro файл поддержку нового стандарта, как - я написал выше. По умолчанию он выключен, а в старом стандарте нет поддержки потоков на уровне C++ STL, только OpenMP из пункта 3!). 2. Использовать потоки библиотеки Qt, ничего дополнительного в .pro файл не надо, только в заголовочные. 3. Использовать OpenMP. OpenMP - набор макросов для работы с потоками и поддерживается С++ по умолчанию уже с С++ 99, посему OpenMP будет везде и ничего, опять же, в .pro файл писать не нужно, и даже заголовочные файлы не нужны.
1
|
04.11.2014, 19:00 | 12 |
У человека может и не быть компилятора поддерживающий нужную фичу из C++11. Это актуальная проблема для серверных решений на базе GNU/Linix
Про OpenMP то же обман: 1. Существует куча версий OpenMP и их поддержка различается от поставщика компилятора и версии компилятора 2. Нужен дополнительный ключ компилятора -fopenmp(GCC), /openmp(Visual C++)
1
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
04.11.2014, 19:14 | 13 |
Есть компилятор, который поддерживает С++ 11, но не поддерживает потоки? Я тоже люблю занудничать, но автору темы явно пока не нужно знать это, у него проблемы другого уровня. К тому же из контекста очевидно, что он прогает с винды, VS13 ему все нужное даст.
0
|
04.11.2014, 19:24 | 14 |
UndeadBlow, C++0x/C++11 Support in GCC.
Из контекста ясно, что у него компилятор GCC, а не VS. VS13 не даст OpenMP 3/4.
0
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
04.11.2014, 19:58 | 15 |
У них все документировано связанное с OpenMP и никаких проблем не должно возникнуть. 3/4, это вы как так подсчитали точно?
В любом случае, я просто перечислил доступные инструменты. Мешать STL и Tulip не лучший тон.
0
|
04.11.2014, 23:07 | 16 |
OpenMP в Visual C++ ясно сказано стандарт 2.0
Стандарты OpenMP Поддержка OpenMP в GCC STL это Standard Template Library, а не стандартная библиотека С/C++. Почему нельзя взять самое лучшее из различных реализаций? Пока не встречал таких рекомендаций от авторитетов в C++.
0
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
04.11.2014, 23:21 | 17 |
Это мое личное мнение, потому что при смешении типов возникает путаница и возможные незаметные баги. Например вот из нашего проекта строка, которая мне не нравится совсем:
Код
this->_key_sha512 = QString::fromStdString(sha512(key_.toStdString()));
0
|
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 32
|
|||||||||||
05.11.2014, 15:39 [ТС] | 18 | ||||||||||
Люди, давайте жить дружно. Почитал ваши топики, немного понял, но понял, что ещё осваивать много. Прочитал пару книжек по Qt, и почти освоил визуальное программирование. Сам язык знал, а вот где - какой кампилятор, какие настройки и для чего, лучше использовать - хотел бы почитать.
У меня
Если знаете книги, что описывают данные вопросы, то хотелось бы почитать. Включение #include <thread> без ключа в про-файле QMAKE_CXXFLAGS += -pthread даёт ошибку. Одно без другого не работает, хотя про это нигде не сказано. Думаю таких нюансов ещё будет много. Спасибо.
0
|
06.11.2014, 10:34 | 19 |
UndeadBlow, приведенный пример ни коем образом не относится к проектированию.
То что вы взяли функцию из сторонней библиотеки которая написана по стандартам(Стандарты программирования на С++) это вопрос к реализации, а не проектированию. Результатом проектирования является модель объектная(или любая другая, в зависимости от выбранной парадигмы. Объектно-ориентированный анализ и проектирование с примерами приложений.)
0
|
8 / 6 / 1
Регистрация: 15.12.2011
Сообщений: 59
|
|
06.11.2014, 14:38 | 20 |
Приведенный пример напрямую относится к проектированию архитектуры программы, частью которого является определение используемых типов данных заранее
http://www.ozon.ru/context/detail/id/3159814/
1
|
06.11.2014, 14:38 | |
06.11.2014, 14:38 | |
Помогаю со студенческими работами здесь
20
WebBrowser в консольной программе Как завершить поток в программе Посылка сообщения консольной программе Горячие клавиши в консольной программе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|