Значение параметров в установщике mingw-w64
В онлайн-установщике MinGW-W64 есть несколько полей, которые вы можете выбрать. Однако я не могу найти документацию по этому поводу, и предположения, которые я сделал, не дают мне поведения, которое я хочу.
Очевидно, что в этот проект вошла большая работа, поэтому, похоже, жаль, что поглощение сдерживается из-за отсутствия базовой документации.
Поля "Версия" и "Архитектура" не требуют пояснений, но в других областях, с которыми я столкнулся, есть (значения, показанные текущим установщиком):
- Темы, параметры
posix
и win32
- Исключение, опции
dwarf
и sjlj
- Версия сборки, параметры
0
, 1
, 2
.
Значения, которые я выбрал при предыдущей установке, были win32
, seh
и 1
(очевидно, параметры изменились с тех пор, но я не мудрее относительно того, что).
Каковы плюсы и минусы каждого варианта, особенно модель потоковой обработки и обработки исключений, и какая версия "наилучшая"?
Конкретными проблемами, с которыми я столкнулся с помощью x86_64-win32-seh-rev1
, являются:
-
std::thread
и std::condition_variable
не поддерживаются
- При отладке (используя Code:: Blocks как IDE), если выбрано исключение, он не перескакивает на обработчик исключений; выбор следующей строки ничего не делает 3 раза, а затем отменяет прогон.
Я могу справиться с проблемой отладки, но было бы неплохо иметь рабочие потоки С++ 11.
Ответы
Ответ 1
Исключения
См. этот ответ для всех трех моделей (карлик, sjlj и seh).
Темы
Вы можете решить, какие потоки вы хотите использовать: потоки POSIX или потоки Windows API. Посильные нити имеют преимущество переносимости; вы можете использовать свой код на других платформах posix (например, linux) без изменений. В win32 threading api только окна. Если вы на 100% на окнах и, как и api, ничего не проблема.
Если вы используете новые функции С++, такие как std::thread
, воздействие становится менее заметным, поскольку у вас уже есть стандартный api для потоковой передачи. Я не уверен, действительно ли есть большая разница, если вы не используете api файл posix-/win32 напрямую (может быть, std::thread
native handles?)
Смотрите также: темы mingw-w64: posix vs win32
Версия сборки
Я предполагаю, что только один номер версии, так как Mingw (-w64) следует версиям GCC (4.8.x, 4.9.x и т.д.). Если вам не нужна конкретная сборка, вы должны использовать последнюю версию.
Проблема с потоками
Если выбрано исключение:
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
затем просто ссылка pthreads - и проблема решена.
Рекомендация
Если у вас нет причин использовать конкретный вариант; моя личная рекомендация:
posix - dwarf - 2
- Posix включить С++ 11
<thread>
, <mutex>
и <future>
- карлик быстрее
- 2, потому что это последняя версия
Ответ 2
Я думаю, что приму посикс. Я не вижу версию 2, так что это уже изменилось...: P
Затем посмотрите, что произойдет, если я через 24 часа или около того протестирую мою программу, чтобы убедиться, что она работает. Вы попадаете в двоичное дерево трудностей. Из одной вещи вы получаете три проблемы. Тогда каждая проблема дает вам три новые проблемы, то есть, как они создают ловушку для выполнения каких-либо задач. Каждая коммерческая компания работает таким образом и работает вместе. Они летают по всему миру, чтобы поговорить наедине о том, как это сделать. Зарабатывать.
И, если это не сработает, я возвращаюсь в джунгли. Ищите волшебную палочку, которая сделает это возможным.
Это все дерьмо.
(Компьютерный эксперт).
Ответ 3
Это джунгли. Они созданы специально для того, чтобы позволить нам в этом участвовать. Так что крупные компании (которые используют/крадут все у сообщества открытого кода) могут справиться только с этим. Они также проникают в сообщество open source, чтобы что-то изменить, чтобы только они знали, как с этим справиться. Они думают коммерчески. Одиночки больше не могут справиться со всем, они (очень скрытые) меняют вещи, так что вы не можете больше следить за всеми изменениями. Поскольку у них много экспертов, они бегают по форумам и с открытым исходным кодом, чтобы таким образом портить вещи, усложнять их и т.д., Удаляя страницы из Интернета с информацией о том, как что-то сделать. Каждый гид вводит в заблуждение и т.д. И т.д. И т.д. Его везде, даже в вашей голове. Думая, что вы контролируете компьютеры/программное обеспечение, они ставят вас не в ту ногу. Речь идет о разрушении ваших программ, чтобы они не могли работать в будущем. Если вы достигнете чего-то хорошего, они будут делать и изменять вещи, чтобы вы не могли следить за изменениями. Ничто не работает так, как раньше или как это должно работать. Это всего лишь одна из многих проблем, с которыми вы сталкиваетесь при разработке программного обеспечения самостоятельно. Только крупные коммерческие компании, которые крадут и портят такие вещи, как ffmpeg, чтобы ваш видеопроигрыватель больше не работал, а ваши библиотеки не обновлялись до более новых версий и т.д., Могут справиться с изменениями, которые они сделали сами. Мы все трахаемся, даже Linux с открытым исходным кодом поврежден, поэтому вместо нажатия кнопки вы бегаете в джунглях, которые они создали. Если вы не индиец, который знает эти джунгли, и у вас нет большого острого ножа (денег), у вас закончится боль в заднице.
Они позволяют нам бегать кругами. На самом детальном уровне они развращают сообщество открытого исходного кода, потому что они хотят играть за бога и продавать программы, которые работают.
Вы хотите сделать программное обеспечение для Windows? Вы должны заключить сделку с Microsoft, иначе они повредят Windows, поэтому ваша программа больше не будет работать.
Вы хотите больше этого дерьма заговора? Проникните в большие компании, ведите себя так, как будто вы такой же социопат, как они, и они сообщат вам, как это сделать.
У них тысячи троллей бегают по Интернету, развращают вещи для нас с тобой, и дают вам ответы на вопросы, как это сделать, они просто заставляют вас быть занятыми.
Пока вы бегаете в джунглях оболочек, нечитаемых скриптов, проблем с косой чертой/обратной косой чертой, компиляторов, 32/64 бит, ОС, процессоров и т.д. И т.д. И т.д. И т.д., Они делают большие деньги,
В конце концов, многие ботаники разочаровываются в программировании, потому что им это надоело, в джунглях бегают только дураки.
Я такой дурак... Я просто продолжаю бегать, бить по мускито, змеям, львам, кровососущим существам, мясистым растениям и т.д.
Вам нужно только поджечь джунгли, вспахать землю и построить красивую ферму без социопатов, которые следуют только за деньгами.
Они также должны повесить Билла Гейтса за шары. Он является лучшим примером и не только проник в 95% всех компьютеров в мире, он даже в сознании всех пользователей окон.
В конце концов, они только создают программное обеспечение, разрабатывают программное обеспечение, разрабатывают программное обеспечение и т.д. Затраты на программирование составляют 90% от испорченного открытого исходного кода и всего дерьма, только 10% от программирования. Вы работаете 1 час в своей программе, но 9 часов на все дерьмо, просто чтобы быть в состоянии сделать это.
Это испорченный мир. Извините за мою удручающую историю,
Но вы все трахаетесь в задницу, не зная, а миллионеры-иллюминаты смеются вам в лицо, трахая вас в задницу.
Как манера говорить. Они в волосяных сосудах всего.
До свидания. Повеселись. Я видел десять тысяч подобных проблем. Почему вы думаете, что они больше не могут отправиться на Луну? Потому что все сделано сложным, и если вы хотите, вам придется заплатить им. Им принадлежит все, даже твоя девушка.
Но вы не хотите знать все это.