В общем, мои сладенькие, сей фреймворк решил потыкать палочкой я. Оно и очевидно. GKT уже воняет, а тут вроде плюсцы и всё такое... Но сразу наткнулся на неприятный баг, связанный с QStringLiteral. В общем смотрим код:
Видим, что вся оптимизация сводится к созданию статической переменной qstring_literal для каждой строки. А дальше начинается самое весёлое. Эти перцы взяли, да и тупо заменили все сроки на QStringLiteral. Меня, конечно, спросят. А ололо? А не похуй ли? Но тут начинается веселуха. Посоны и не знали, что куйтя грузит плагинчики через dlopen. И если два разных автора написали два разных плагина для одной программы, то есть вероятность, что какой-то из классов у них будет с одинаковым именем. В общем мну в ахуе, но одинаковые статические переменные конфликтуют между собой, даже если их распихать по плагинам и использовать dlopen. Вероятность этого, конечно, не велика и редко когда реально вылазит, но, блджал, у нас есть uic, который генерит ui_*.h с кучей этих ваших QStringLiteral. Так что не удивляйтесь, если в формочке вдруг вылезли левые названия. Скорее всего дело в этом.
Но сия проблема, конечно, легко обходится посредством переименования формочек, ну или с -fvisivility=hidden поиграться, как вариант. Но дальше ещё интереснее. Если мы выгрузим плугин, то можем схватить сегфолт по причине того, что где-то используется указатель на этот ваш сраный QStringLiteral. Но, видим, что команда занята поиском таких вот багов уже на протяжении нескольких лет. Что я могу сказать? Каждый дрочит как хочет:
Re:А почему Qt company такое УГ?
Сладенькая, поздно в твоем возрасте Кутю на пару с С++ осваивать)))
Катайся на тракторе, не еби мозги)))
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36