Значение параметров в установщике 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 часов на все дерьмо, просто чтобы быть в состоянии сделать это.

Это испорченный мир. Извините за мою удручающую историю,

Но вы все трахаетесь в задницу, не зная, а миллионеры-иллюминаты смеются вам в лицо, трахая вас в задницу.

Как манера говорить. Они в волосяных сосудах всего.

До свидания. Повеселись. Я видел десять тысяч подобных проблем. Почему вы думаете, что они больше не могут отправиться на Луну? Потому что все сделано сложным, и если вы хотите, вам придется заплатить им. Им принадлежит все, даже твоя девушка.

Но вы не хотите знать все это.