Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goldendict compiled for Windows from source does not work with DSL and MDX dictionaries. #1322

Open
mx1234567 opened this issue Nov 28, 2020 · 3 comments

Comments

@mx1234567
Copy link

0. Post. En.docx
0. Пост.docx
1. Install Qt Creator and the Visual Studio components required for building. En.docx
1. Установка Qt Creator и требуемых для сборки компонентов Visual Studio.docx
2. Build GoldenDict. En.docx
2. Сборка GoldenDict.docx

Goldendict compiled for Windows from source does not work with DSL and MDX dictionaries.

DSL

When starting a program compiled for MSVC2015, the following error messages are displayed for each attempt to index and open the next DSL dictionary:
Application output:
“DSL dictionary reading failed: C:\dict\Common\En-Ru-Apresyan.dsl.dz: 0, error: An error has occurred during character conversion: No such file or directory”

Even if DSL dictionaries are indexed, they are still not connected at startup.

MDX

MDX dictionaries are also not indexed, but they are included if they are indexed, and the articles from them are not shown - they are empty.
I found a mention that GoldenDict does not support MDX dictionaries of the latest, 4th version:
http://forum.ru-board.com/topic.cgi?forum=5&topic=49149&start=2220,
and thought at first that this was the case, but it turned out that under Linux MDX dictionaries work, i.e. indexed and connected without problems.

Under Windows, when starting Goldendict from the 32bit version, when trying to index, an error message is displayed:
"Vector too long"...

When starting from the 64bit version, another error message is displayed:
"Bad allocation"...

“F:\dd\vctools\crt\vcstartup\src\heap\throw_bad_alloc.cpp: 34: warning: Debugger encountered an exception: Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C ++ exception, flags = 0x1 (execution cannot be continued) ( first chance) "

English Wikipedia

English Wikipedia returns an error when displaying an article:
“Query error: XML parse error: unexpected end of file at 1,1”

These errors are present when building from the repositories below (I tried building from different branches):
https://github.com/goldendict/goldendict
https://github.com/Abs62/goldendict
https://github.com/GD-fix/goldendict

In the version from nonwill:
https://github.com/nonwill/goldendict.git
https://nonwill.github.io/post/goldendict,

DSL dictionaries can be indexed and connected,
but for some reason only when the project is built under Build configuration: Release.
Under Build configuration: Debug, they are also not indexed, but at least they connect and work at startup.
True, this produces various errors:

**Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C ++ exception, flags = 0x1 (execution cannot be continued) (first chance) at c:\prj3\goldendict_nonwill_1.5.0-2019\main.cc: 243

Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C ++ exception, flags = 0x1 (execution cannot be continued) (first chance) at c:\prj3\goldendict_nonwill_1.5.0-2019\dsl_details.cc: 771

c:\prj1\goldendict\iconv.cc: 66: warning: An error occurred in the debugger: Exception at 0x7ffb12ce3e49, code: 0xe06d7363: C ++ exception, flags = 0x1 (execution cannot be continued) (first chance)**

In the version from nonwill, compiled under Build configuration: Release, articles from MDX dictionaries are displayed.
But with Build configuration: Debug, they are not displayed either.

Well, the following messages are also issued. I don't know what they can influence.

LINK: warning LNK4098

“LINK: warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use / NODEFAULTLIB: library
LINK: warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use / NODEFAULTLIB: library ”

How to fix this warning?

OLEAUT32.dll! 00007FFE001A95F6

“Debugging starts
mincore\com\oleaut32\dispatch\ups.cpp (2122)\OLEAUT32.dll! 00007FFE001A95F6: (caller: 00007FFE001A8A09) ReturnHr (1) tid (ddc) 8002801D Library not registered.
mincore\com\oleaut32\dispatch\ups.cpp (2122)\OLEAUT32.dll! 00007FFE001A95F6: (caller: 00007FFE001A8A09) ReturnHr (2) tid (ddc) 8002801D Library not registered. "

Perhaps these messages are related to a bug:
https://bugreports.qt.io/browse/QTBUG-63789

Is there any way to fix this problem?


The respected Abs62's answer to the error related to DSL dictionaries is given below, but almost half a year has passed, and this problem has remained.
http://forum.ru-board.com/topic.cgi?forum=5&active=&topic=49149&start=2180

"Quote:
3. At startup, DSL dictionaries are not indexed and are not connected, even if indexed. The following error messages are displayed every time you open the next dictionary:

And this is already in the debugger, you need to look at what exactly does not work there. "


I myself compiled Goldendict for Windows for the following kit:
MSVC2015 32bit and 64bit,
MinGW 32-bit.

Note that under Linux everything is assembled and works without problems, without any squats.
We have abandoned support for the Windows version, and the majority of people still use Windows.

For MinGW, 32-bit is also built, but with the flags: "CONFIG+=old_hunspell" because of the old version of the library, and "CONFIG+=no_chinese_conversion_support" because of the missing library
The MinGW 32-bit version builds slower and works slower.

My steps to build on Windows are given in the attached files.
Please write if I did something wrong.
It is possible that I need to build with the correct libraries, or I am building the project incorrectly under MSVC2015.
Can someone share their unlisted sources, or give a link to their repository, which I do not know about, in which this problem is solved.
Can someone tell me which versions of Qt, Windows SDK, Visual Studio, compiler versions in Visual Studio, it is better to build under Windows to get a working version?

There is also a problem with libraries that can be downloaded from the link:
https://github.com/goldendict/goldendict#building-under-windows-with-ms-visual-studio
The sources are uploaded without updating the libraries.
As a result, it will not be possible to build a project just like that, following the instructions given.
To build, you need to set parameters for disabling libraries, using an old version, or building them yourself from sources, guessing the version (see attached files).
Maybe that's why DSL dictionaries didn't work for me.
Websitewww.mediafire.com, where the library files are located, is locked, at least from my provider, and they must be downloaded via VPN.

I also note that these DSL and MDX dictionaries are indexed without problems and connected in other binary assemblies from the Early Access Builds for Windows pages:
https://github.com/goldendict/goldendict/wiki/Early-Access-Builds-for-Windows
https://sourceforge.net/projects/goldendict/files/early%20access%20builds/Qt5-based
Those. people know how to collect them in a normally working version.

I understand that some people just don't post their changes, like nonwill.
A big request for help with building a normally working version under Windows,
normally indexing and opening DSL and MDX dictionaries.
I would then be able to make up-to-date assembly instructions for Windows, and put it on:
https://github.com/goldendict/goldendict/wiki...

If you are ready to share information privately, you can write to me at: differentstory@yandex.ru.

Stardict dictionaries are indexed and connected without problems in all assemblies.

I also made my own modifications, but in the version from nonwill, tk. others cannot be used.
I would like to share them too, but how can they be uploaded,
even if the version from the main repository is not working under Windows?

Nonwill himself, why this error occurs with DSL dictionaries, was also at a loss to answer, perhaps he does not use them, see our correspondence:
#1266

And he himself, apparently, is already desperate to change something, as I understand it, his pull requests do not process:
https://github.com/nonwill/goldendict/issues/37
“Sorry for that. I've commited a pull-request to official repo before, but I closed it recently, because it seems like that it'll never be accepted. The latest codes I work on are far away from and Not Compatible with official ones and in the future, I will try to keep the distribution binary for a small group of individuals (in personally use only), thanks. ”

and we are talking about the fact that it is time to fork, but he does not have time for this, and the problem I described should also be dealt with.
#1254
nonwill commented on Aug 20
@ Shen897
"All changes after pull request have not pushed in yet."

loyukfai commented on Aug 20
“Wondering if the original dev has gone missing, maybe someone can fork the project and release something like GoldenDict-NG.
Apparently the Android and Mac apps are quite out-of-date as well.
Cheers. ”

nonwill commented on Aug 20 •
"Things are a bit complicated , all contributors have life and work, and maintenance work also takes time."


Goldendict собранный под Windows из исходников не работает с DSL и MDX словарями.

При запуске программы, собранной под MSVC2015, выдаются следующие сообщения об ошибках, при каждой попытке индексирования и открытия очередного DSL-словаря:
Application output:
“DSL dictionary reading failed: C:\dict\Common\En-Ru-Apresyan.dsl.dz:0, error: An error has occurred during character conversion: No such file or directory”

Если даже DSL-словари проиндексированы, то все равно не подключаются при запуске.

MDX словари также не индексируются, но подключаются, если проиндексированы, при этом статьи из них не показываются - они пустые.
Я нашел упоминание, что GoldenDict не поддерживает MDX-словари последней, 4-й версии:
http://forum.ru-board.com/topic.cgi?forum=5&topic=49149&start=2220,
и подумал сначала что дело в этом, но оказалось, что под Linux MDX-словари работают, т.е. индексируются и подключаются без проблем.

Под Windows, при запуске Goldendict из 32bit версии, при попытке индексирования, выдается сообщение об ошибке:
“Vector too long”.

При запуске из 64bit версии выдается уже другое сообщение об ошибке:
“bad allocation”.

“f:\dd\vctools\crt\vcstartup\src\heap\throw_bad_alloc.cpp:34: warning: Debugger encountered an exception: Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance)”

English Wikipedia при отображении статьи возвращает ошибку:
“Query error: XML parse error: unexpected end of file at 1,1”

Данные ошибки присутствуют при сборке из приведенных ниже репозиториев (пробовал собирать и из разных веток):
https://github.com/goldendict/goldendict
https://github.com/Abs62/goldendict
https://github.com/GD-fix/goldendict

В версии от nonwill:
https://github.com/nonwill/goldendict.git
https://nonwill.github.io/post/goldendict,

DSL-словари удается индексировать и подключить,
но почему-то только когда проект собран под Build configuration: Release.
Под Build configuration: Debug, они тоже не индексируются, но при запуске хотя бы подключаются и работают.
Правда при этом выдаются различные ошибки:

“Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at c:\prj3\goldendict_nonwill_1.5.0-2019\main.cc:243

Exception at 0x7ffdfdd83e49, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at c:\prj3\goldendict_nonwill_1.5.0-2019\dsl_details.cc:771

c:\prj1\goldendict\iconv.cc:66: предупреждение: В отладчике возникла ошибка: Exception at 0x7ffb12ce3e49, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance)”

В версии от nonwill, собранной под Build configuration: Release, статьи из MDX-словарей отображаются.
Но при Build configuration: Debug, они не также не отображаются.

Ну и еще выдаются следующие сообщения. Я не знаю на что они могут влиять.
LINK : warning LNK4098

“LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library”

Как исправить данные warning?
OLEAUT32.dll!00007FFE001A95F6
“Debugging starts
mincore\com\oleaut32\dispatch\ups.cpp(2122)\OLEAUT32.dll!00007FFE001A95F6: (caller: 00007FFE001A8A09) ReturnHr(1) tid(ddc) 8002801D Library not registered.
mincore\com\oleaut32\dispatch\ups.cpp(2122)\OLEAUT32.dll!00007FFE001A95F6: (caller: 00007FFE001A8A09) ReturnHr(2) tid(ddc) 8002801D Library not registered.”

Возможно эти сообщения, связаны с багом:
https://bugreports.qt.io/browse/QTBUG-63789

Можно как-нибудь исправить эту проблему?


Ответ уважаемого Abs62, на ошибку связанную с DSL-словарями, приведен ниже, но прошло уже почти полгода, а данная проблема так и осталась.
http://forum.ru-board.com/topic.cgi?forum=5&active=&topic=49149&start=2180

“Цитата:
3. При запуске не индексируются и не подключаются, если даже проиндексированы, DSL словари. Выдаются следующие сообщения об ошибках, при каждом открытии очередного словаря:

А это уже в отладчике смотреть надо, что конкретно там не получается.”


Я сам собирал Goldendict под Windows для следующих kit:
MSVC2015 32bit и 64bit,
MinGW 32-bit.

Замечу, что под Linux все собирается и работает без проблем, без всяких приседаний.
Забросили поддержку именно Windows версии, а основная масса людей все-таки пользуется Windows.

Под MinGW 32-bit тоже собирается, но с флагами: "CONFIG+=old_hunspell" из-за старой версии библиотеки, и "CONFIG+=no_chinese_conversion_support" из-за отсутствующей библиотеки
Версия под MinGW 32-bit медленнее собирается и помедленнее работает.

Мои шаги для выполнения сборки под Windows приведены в приложенных файлах.
Просьба написать, если я что-то делал не так.
Возможно, что надо собрать с правильными библиотеками, или я неправильно собираю проект под MSVC2015.
Может кто-нибудь поделится своими невыложенными исходниками, или даст ссылку на свой репозиторий, о котором я не знаю, в котором данная проблема решена.
Может кто-нибудь подскажет, под какие версии Qt, Windows SDK, Visual Studio, версии компилятора в Visual Studio, лучше собирать под Windows, чтобы получить работающую версию?

Также тут беда с библиотеками, которые можно скачать по ссылке:
https://github.com/goldendict/goldendict#building-under-windows-with-ms-visual-studio
Исходники выкладываются без обновления библиотек.
В итоге просто так собрать проект, по приведенной инструкции не получится.
Чтобы выполнить сборку, надо задавать параметры для отключения библиотек, использования старой версии, или собирать их самому из исходников, угадывая версию (см. приложенные файлы).
Может DSL-словари поэтому у меня и не заработали.
Сайт www.mediafire.com, где лежат файлы библиотек, заблокирован, по крайней мере у моего провайдера, и их надо скачивать через VPN.

Замечу также, что данные DSL и MDX словари без проблем индексируются и подключаются в других бинарных сборках со страниц Early Access Builds for Windows:
https://github.com/goldendict/goldendict/wiki/Early-Access-Builds-for-Windows
https://sourceforge.net/projects/goldendict/files/early%20access%20builds/Qt5-based
Т.е. люди умеют собирать их в нормально работающем варианте.

Я так понимаю, что некоторые люди уже просто не выкладывают свои изменения, как например nonwill.
Большая просьба помочь со сборкой нормально работающей версии под Windows,
нормально индексирующей и открывающей DSL и MDX словари.
Я бы тогда мог сделать актуальную инструкцию по сборке под Windows, и выложил бы её на:
https://github.com/goldendict/goldendict/wiki.

Если вы готовы поделиться информацией в частном порядке, мне можно написать на: differentstory@yandex.ru.

Stardict-словари индексируются и подключаются без проблем во всех сборках.

Я тоже сделал свои доработки, но в версии от nonwill, т.к. другими пользоваться невозможно.
Хотел бы ими тоже поделиться, но как их можно выкладывать,
если даже версия с главного репозитория не рабочая под Windows?

Сам nonwill, почему происходит данная ошибка с DSL-словарями, ответить тоже затруднился, возможно он ими и не пользуется, см. нашу переписку:
#1266

Да и он сам видимо уже отчаялся, что-то изменить, я так понял его pull-реквесты не обрабатывают:
https://github.com/nonwill/goldendict/issues/37
“Sorry for that. I've commited a pull-request to official repo before, but I closed it recently, because it seems like that it'll never be accepted. The latest codes I work on are far away from and Not Compatible with official ones and in the future, I will try to keep the distribution binary for a small group of individuals(in personally use only), thanks.”

и речь идет о том, что уже пора делать форк, но у него на это нет времени, да и с описанной мной проблемой надо бы тоже разобраться.
#1254
nonwill commented on Aug 20
@shen897
“All changes after pull request have not pushed in yet.”

loyukfai commented on Aug 20
“Wondering if the original dev has gone missing, maybe someone can fork the project and release something like GoldenDict-NG.
Apparently the Android and Mac apps are quite out-of-date as well.
Cheers.”

nonwill commented on Aug 20 •
“Things are a bit complicated,all contributors have life and work, and maintenance work also takes time.”

@vedgy
Copy link
Member

vedgy commented Nov 28, 2020

English Wikipedia returns an error when displaying an article:
“Query error: XML parse error: unexpected end of file at 1,1”

See #654 for the simple fix you need to do in Preferences.

@xiaoyifang
Copy link
Contributor

xiaoyifang commented Oct 19, 2021

error about mdx,dsl dictionaries,fixed in following commit
ded545e

in PR #1400

@xiaoyifang
Copy link
Contributor

ref #1451

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants