Здравствуйте, niXman, Вы писали:
X>так это известная проблема. правда, пока не вникал, почему она существует... X>если есть желание полечить — велкам.
Насколько я понимаю там не какие-то баги, а тупо отсутствие нужного кода. А C библиотека просто напрямую эксплуатирует Microsoft рантайм. Использовать же её в C++ коде они не смогли (ну оно и понятно, там глобальное состояние).
Но вот само отсутствие кода выглядит странно, т.к. например в том же STLPort он есть. Да и вообще там ничего умного нет. Архитектура то полностью определена стандартом и данные культур/языков тоже не могут отличаться, так что программируется там всё в основном множественным копипастом.
X>всего однажды приходилось использовать локали, и использовал — boost.locale. не потому, что std::locale не работает, а потому что дока к boost.locale оказалась понятней. X>и да, дело было в линуксе.
Ну в линухе то icu вроде обычно есть... А под виндой у меня буст без неё собран. Да и под линухом можно было спокойно без буста — он там нужен уже разве что для дополнительных (относительно стадарта C++) фич.
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Lucky Cat,
X>не могли бы вы резюмировать суть проблемы? а то я, честно говоря, запутался %) X>спасибо.
Резюмирую.
Запускаю оболочку с настроенными на MinGW путями.
Захожу в папку wxWidgets\build\msw.
Запускаю команду mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release
На выходе куча сообщений "Cannot get section contents — auto-import exception"
собранная статически с ключем monolithic=1 либа не может использоваться,
так как линкер при компоновке wx проги с статической либой выдает точно такую
же ошибку, что и при сборке динамической либы. Это проверял на 4.9.0 только.
gcc_mswudll\coredll_msw_textentry.o:textentry.cpp.rdata$_ZTI21wxTextCompleterS
imple[_ZTI21wxTextCompleterSimple]+0x1628e9ce3c012c0): Cannot get section conten
ts — auto-import exception
gcc_mswudll\coredll_msw_textentry.o:textentry.cpp.rdata$_ZTI20wxTextCompleterF
ixed[_ZTI20wxTextCompleterFixed]+0x58a3a738f004aa0): Cannot get section contents
— auto-import exception
gcc_mswudll\coredll_msw_textentry.o:textentry.cpp.rdata$_ZTI11IEnumString[_ZTI
11IEnumString]+0x58a3a738f004a850): Cannot get section contents — auto-import ex
ception
gcc_mswudll\coredll_msw_textentry.o:textentry.cpp.rdata$_ZTI13wxIEnumString[_Z
TI13wxIEnumString]+0x1d39c7802541b930): Cannot get section contents — auto-impor
t exception
gcc_mswudll\coredll_msw_textentry.o:textentry.cpp.rdata$_ZTI20wxEventFunctorMe
thodI14wxEventTypeTagI10wxKeyEventE22wxTextAutoCompleteDataS1_S3_E[_ZTI20wxEvent
FunctorMethodI14wxEventTypeTagI10wxKeyEventE22wxTextAutoCompleteDataS1_S3_E]+0x3
a738f004a837240): Cannot get section contents — auto-import exception d:/gcc/gcc64_4.9.0/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w6
4-mingw32/bin/ld.exe: gcc_mswudll\coredll_msw_textentry.o: bad reloc address 0x1
0 in section `.data'
Здравствуйте, Lucky Cat, Вы писали:
LC>Здравствуйте, niXman, Вы писали:
X>>Здравствуйте, Lucky Cat,
X>>не могли бы вы резюмировать суть проблемы? а то я, честно говоря, запутался %) X>>спасибо.
LC>Резюмирую.
Здравствуйте, Lucky Cat, Вы писали:
LC>А патч не засылали виджетоводам?
Нет, там было костыльное (хотя и корректное технически) решение. Просто что бы убрать проблему, не разбираясь с истоками возникновения.
LC>И если не секрет, как правили?
Закомментировал #include <initguid.h> в textentry.cpp. Ну и соответственно переправил объявление двух GUID'ов определённых в этом файле в вариант без макроса.
Re: Сборки MinGW(GCC-win32/win64) от niXman
От:
Аноним
Дата:
01.07.13 15:36
Оценка:
есть вопросы))
первое — скачал ваш offline установщик — а он Cannot download repository.
Проверил ручками — да нет — можно этот файл скачать. Виден и доступен он.
Собсно из-за этого получилось, что я не смог увидеть КАК выглядит установщик
(его шаги). Но сразу хочется попросить — чтоб в местах, где вы предлагаете выбор
версии_ОС/разрядности/модели_потоков/реализации_исключений/ревизии
давать ссылку на страницу вашего проекта — где бы два странных пункта, а именно:
модели_потоков/реализации_исключений были бы прояснены. Чтото типа микроВИКИ
для этого. Чтоб в одном месте любой начинающий мог прочесть что это за звери.
Но к делу — итак, мне пришлось качать весь архив самому. Ну не страшно — сделал.
Распаковал в корень D:\ диска. Зашел внутрь и опешил. Раньше всегда в дистрибе
mingw папка bin ярко выделялась))) А щаз там ярко выделяется папка i686-w64-mingw32
А зачем? откуда вообще бла_w64_бла там болтается — ведь я качал строго 32битную версию.
И главное! внутри это папки тоже есть bin/ include/ lib/ папки! Как так? Да и
файлы bin папки совпадают побайтно с файлами из bin папки с корня установки.
Теперь в PATH переменную надо вносить 6 путей? три bin/ include/ lib/ папки из
корня установки и еще 3 bin/ include/ lib/ папки из подпапки i686-w64-mingw32.
Так? А если нет — то чего же в readme каком-нить простеньком не описать процедуру
ручного установления Mingw в систему....
Надеюсь хотя бы установщик автоматом эту проблему решает.
Еще не понял, отчего нет даже намека на MSYS. Где и как его брать теперь?
Вы планируете и для него offline установщик?
Здравствуйте, Аноним, Вы писали:
А>есть вопросы))
А>первое — скачал ваш offline установщик — а он Cannot download repository. А>Проверил ручками — да нет — можно этот файл скачать. Виден и доступен он.
вы не первый, кто сообщил об этой ошибке. разбираемся...
А>сразу хочется попросить — чтоб в местах, где вы предлагаете выбор А>версии_ОС/разрядности/модели_потоков/реализации_исключений/ревизии А>давать ссылку на страницу вашего проекта — где бы два странных пункта, а именно: А>модели_потоков/реализации_исключений были бы прояснены. Чтото типа микроВИКИ А>для этого. Чтоб в одном месте любой начинающий мог прочесть что это за звери.
принято.
А>Раньше всегда в дистрибе А>mingw папка bin ярко выделялась))) А щаз там ярко выделяется папка i686-w64-mingw32
укажите ссылку на архив который скачали, и покажите список каталогов после распаковки архива.
А>откуда вообще бла_w64_бла там болтается — ведь я качал строго 32битную версию.
'w64' — это отличительный "маркер" API & CRT используемых для сборки тулчейна.
в данный момент, существует две версии API & CRT: 1) 32ух битная, предоставляемая проектом mingw.org(https://sourceforge.net/projects/mingw), и 32ух-64ех битная, предоставляемая проектом mingw-w64(https://sourceforge.net/projects/mingw-w64). mingw-builds для своих сборок использует только вторую.
А>И главное! внутри это папки тоже есть bin/ include/ lib/ папки! Как так? Да и А>файлы bin папки совпадают побайтно с файлами из bin папки с корня установки.
тут, я не уверен, что правильно вас понял... %)
А>Теперь в PATH переменную надо вносить 6 путей? три bin/ include/ lib/ папки из А>корня установки и еще 3 bin/ include/ lib/ папки из подпапки i686-w64-mingw32.
А>Так?
нет. в меню "Пуск" есть ярлык, устанавливающий переменную PATH.
А>А если нет — то чего же в readme каком-нить простеньком не описать процедуру А>ручного установления Mingw в систему....
скажу по правде — тут, вроде как, все очевидно. по крайней мере, вы первый кто об этом спросил, за два года существования проекта.
А>Надеюсь хотя бы установщик автоматом эту проблему решает.
А>Еще не понял, отчего нет даже намека на MSYS. Где и как его брать теперь?
MSYS тут: https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/
выбирайте архив с максимальным номером ревизии.
А>Вы планируете и для него offline установщик?
для MSYS?
но у нас нет вообще ни для чего offline установщика..
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: Сборки MinGW(GCC-win32/win64) от niXman
От:
Аноним
Дата:
01.07.13 16:50
Оценка:
Здравствуйте, niXman, Вы писали:
А>>Раньше всегда в дистрибе А>>mingw папка bin ярко выделялась))) А щаз там ярко выделяется папка i686-w64-mingw32 X>укажите ссылку на архив который скачали, и покажите список каталогов после распаковки архива.
Т.е. эта папка стопудово должна быть в папке установки и ее нельзя не вкладывать в установочный архив?
Что такого она в себе содержит то?
А>>И главное! внутри это папки тоже есть bin/ include/ lib/ папки! Как так? Да и А>>файлы bin папки совпадают побайтно с файлами из bin папки с корня установки. X>тут, я не уверен, что правильно вас понял... %)
содержимое mingw32\i686-w64-mingw32\bin побайтно совпадает с содержимым mingw32\bin
А>>Теперь в PATH переменную надо вносить 6 путей? три bin/ include/ lib/ папки из А>>корня установки и еще 3 bin/ include/ lib/ папки из подпапки i686-w64-mingw32. Так? X>нет. в меню "Пуск" есть ярлык, устанавливающий переменную PATH.
Я не смог запустить установщик — так что никаких ярлыков нигде нет.
Какие пути тогда писать? mingw32\bin и только? include/ lib/ подпапки не нужны?
mingw32\i686-w64-mingw32\ или ее подпапки bin/ include/ lib/ не нужны?
А>>А если нет — то чего же в readme каком-нить простеньком не описать процедуру А>>ручного установления Mingw в систему.... X>скажу по правде — тут, вроде как, все очевидно. по крайней мере, вы первый кто об этом спросил, за два года существования проекта.
Ну вот, что был и последний — лучше это описать..... А>>Надеюсь хотя бы установщик автоматом эту проблему решает.
А>>Еще не понял, отчего нет даже намека на MSYS. Где и как его брать теперь? X>MSYS тут: https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ X>выбирайте архив с максимальным номером ревизии.
А>>Вы планируете и для него offline установщик? X>для MSYS? но у нас нет вообще ни для чего offline установщика..
Я ошибся в слове — он у вас online конечно же... Короче для MSYS не будет. И гарантии, что он будет работать с вашей сборкой
выходит тоже нет. Может запуститься и будет работать — а может скажет, что несовместимые версии библиотек и капут...
Здравствуйте, Аноним, Вы писали:
А>mingw32\bin А>mingw32\etc А>mingw32\i686-w64-mingw32 А>mingw32\include А>mingw32\lib А>mingw32\libexec А>mingw32\licenses А>mingw32\opt А>mingw32\share
тут, 'mingw32' — это корень тулчейна. вам, если хотите прописать в PATH, нужно прописать путь к 'mingw32/bin' директории.
А>Т.е. эта папка стопудово должна быть в папке установки и ее нельзя не вкладывать в установочный архив?
все верно.
А>Что такого она в себе содержит то?
хидеры API & CRT, и библиотеки.
А>содержимое mingw32\i686-w64-mingw32\bin побайтно совпадает с содержимым mingw32\bin
долго объяснять. попробуйте переименовать эту директорию, и поймете, что она нужно и именно под таким именем.
А>Я не смог запустить установщик — так что никаких ярлыков нигде нет.
да-да)
А>Какие пути тогда писать? mingw32\bin и только?
да.
А>include/ lib/ подпапки не нужны?
не нужны.
А>mingw32\i686-w64-mingw32\ или ее подпапки bin/ include/ lib/ не нужны?
не нужны.
А>для MSYS не будет
пока — нет.
А>И гарантии, что он будет работать с вашей сборкой выходит тоже нет.
какой гарантии? что MSYS будет работать со сборками mingw-builds?
А>Может запуститься и будет работать — а может скажет, что несовместимые версии библиотек и капут...
MSYS — просто эмулятор POSIX среды. ему mingw вообще не нужен.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Аноним, Вы писали:
А>>есть вопросы))
А>>первое — скачал ваш offline установщик — а он Cannot download repository. А>>Проверил ручками — да нет — можно этот файл скачать. Виден и доступен он. X>вы не первый, кто сообщил об этой ошибке. разбираемся...
Вы это, прежде чем разбираться выясните от какого провайдера инет у качальщика.
У меня дома, с NetByNet все работает, а на работе, у заказчика, сидим через йотовский свисток,
так не только ваш, MinGWовский и TDMный веб инсталлер не работает.
В общем, когда пров много народу с одного айпишника выпускает в интернеты, бывают разные странные траблы.
Срабатывает на хостинге какая-нить защита от ботов и адью.
Здравствуйте, Lucky Cat, Вы писали:
LC>Вы это, прежде чем разбираться выясните от какого провайдера инет у качальщика.
до сих пор, об этой проблеме сообщали англоговорящие юзеры...
да и я особо не понимаю, какая разница какой провайдер...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Lucky Cat, Вы писали:
LC>>Вы это, прежде чем разбираться выясните от какого провайдера инет у качальщика. X>до сих пор, об этой проблеме сообщали англоговорящие юзеры...
В принципе, если в вебинсталлер добавить сбор инфы, например с какого айпи запросил файл
и какой ответ от сервера пришел, когда загрузка не прощла, то можно было бы точно причину определить.
X>да и я особо не понимаю, какая разница какой провайдер...
Разница существенная, такие провы, как йота, пускают всех клиентов с небольшого пула
адресов, для сервера ито выглядит как куча запросов с одного айпишника и часто
срабатывает защита от ДДОС-атак. Когда же запрос идет от броузера, то в запросе
указывается допинформация, которая позволяет развеять подозрения, почему с одного
АйПишника стопитсотый раз пытаются файлик скачать.
В общем с йоты много какие вебинсталлеры не хотят работать, а вот с пчелайна или нетбайнета, все нормально работает.
Здравствуйте, Lucky Cat, Вы писали:
LC>В принципе, если в вебинсталлер добавить сбор инфы, например с какого айпи запросил файл LC>и какой ответ от сервера пришел, когда загрузка не прощла, то можно было бы точно причину определить.
этим и занимаюсь.
LC>Разница существенная, такие провы, как йота, пускают всех клиентов с небольшого пула LC>адресов, для сервера ито выглядит как куча запросов с одного айпишника и часто LC>срабатывает защита от ДДОС-атак.
вариант однако...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>популярность MinGW-builds растет, и кол-во пользователей тоже. X>в связи с этим, есть желание переименовать MinGW-builds в нечто более осмысленное и запустить для него отдельный сайт. X>предлагайте.
X>благодарен.
Да, кстати, а вот что напрягает даже больше локалей (их всё же можно поправить тем же бустом&icu и т.п.), так это кривой линкер. Он например не может слинковать файлы от masm'a, что довольно напряжно для многих библиотек. Причём такое ощущение что там дело всего лишь в одном лишнем подчёрке в именах функций... Ну а может это только часть проблемы. )))
Здравствуйте, niXman, Вы писали:
X>зачем masm, когда есть gas? оО
Ну например кто-то (из авторов библиотек) пишет что не собираются поддерживать более одного компилятора на платформу. А masm — это официальный (и бесплатный) виндовый ассемблер.
Здравствуйте, alex_public, Вы писали:
_>masm — это официальный (и бесплатный) виндовый ассемблер.
и еще штук эдак *надцать. и какой из них официальнее?
к тому же — MinGW/GCC — GNU. какой программист пользователь GNU тулчейна, станет писать для masm, когда это чуждое средство. есть же родной и уютный gas.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>перечислите, пожалуйста.
Например Boost.Context — уже довольно важная вещь... Правда существует патч (как раз gas вариант кода) для неё, что бы собрать в MinGW, но он не входит в официальную поставку.
И ещё где-то не так давно натыкался. То ли в portaudio, то ли в sdl.