Всем спасибо. Кто нибудь собирал rbfx на mingw? интересует версия, так как у меня не собирается(
Zarj
> Всем спасибо. Кто нибудь собирал rbfx на mingw? интересует версия, так как у
> меня не собирается(
Ух. Джош на дискорде раньше собирал, но в целом мингв слишком нестабильно работает, и мы не очень активно его поддерживаем. Посмотри на CI, у нас есть билды длс MinGW (пока еще)
Баги в MinGW бывали https://github.com/urho3d/urho3d/issues/2887 , но они успешно исправлены в поздних версих MinGW. На самом деле хороший компилятор даже под виндой, генерирует более быстрый код, чем VS. А если учесть, что VS 2022 выдает багованую релизную версию движка (баг пришлось обходить вывертом), я бы вообще поддержку MinGW не дропал (я например и не дропаю в своем форке)
1vanK
Зачем нужен mingw если есть clang?
GLoom
> Зачем нужен mingw если есть clang?
clang с Windows SDK не дружит
1vanK
Откуда такая информация? Он с VS 2019 ещё работает прямо из визуалки вообще, при желании.
https://learn.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-170
GLoom
Хз, что там работало у тебя. В виндовых заголовных файлах куча штук, которые стандартом C++ не описаны, а clang полотно из ошибок выдает на все это
Консольную программку напишешь конечно, я ж про Windows SDK не просто так говорю
Хотя я довольно давно тестил, мб сейчас иначе
Даже на сайте clang рекомендуют mingw использовать)))) https://clang.llvm.org/docs/MSVCCompatibility.html
If you don’t require MSVC ABI compatibility or don’t want to use Microsoft’s C and C++ runtimes, the mingw32 toolchain might be a better fit for your project.
1vanK
First, Clang attempts to be ABI-compatible, meaning that Clang-compiled code should be able to link against MSVC-compiled code successfully. However, C++ ABIs are particularly large and complicated, and Clang’s support for MSVC’s C++ ABI is a work in progress. If you don’t require MSVC ABI compatibility or don’t want to use Microsoft’s C and C++ runtimes, the mingw32 toolchain might be a better fit for your project.
Если я правильно понимаю - clang предоставляет совместимость с abi msvc. Если вам не нужна совместимость или не нужны ms c/c++ runtime - может mingw подойдёт лучше.
То есть для меня этот текст выглядит как заявление что у clang совместимость с msvc лучше чем у mingw.
ABI (двоичная совместимость) - это означает что если ты библиотечку им скомпилируешь, то сможешь ее слинковать с программой, скомпилированной компилятором VS. Это не означает поддержку изувеченного микрософтом стандарта C++, т.е. совместимость на уровне исходного кода не заявлена
И то
C++ ABIs are particularly large and complicated, and Clang’s support for MSVC’s C++ ABI is a work in progress
поддержка лишь частично обещается
А в библиотечке ты сможешь написать что-то вроде int sum(x, y) { return x + y; }. Вот например DirectX SDK - это часть Windows SDK. Т.е. прогу, которая использует DirectX ты не сможешь скомпилировать шлангом, потому что он запаникует увидев заголовочные файлы DirectX SDK
У MinGW нет ABI-совместимости с компилятором VS, значит ты не сможешь слинковать объектные файлы от этих двух компиляторов. Однако это и не нужно. У MinGW своя реализация Windows SDK.